Capstone Group 5 AIML May 23 A- NLP 1 Project [NLP-ChatBot]
Contributors: </strong> Anurag, Renuka, Rahul, Anjali, Sreekanth, Harshal, Sanket
Step 1: Import the data [ 3 points ]
# pip install wordcloud
# pip install textblob
# pip install xgboost
Import required libraries
import sklearn
print(sklearn.__version__)
1.2.2
# !pip uninstall scikit-learn --yes
# !pip uninstall imblearn --yes
# !pip install scikit-learn==1.2.2
# !pip install imblearn
# pip install --upgrade imbalanced-learn
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import string
import nltk as nltk
from nltk.corpus import stopwords
from nltk.stem import PorterStemmer
from nltk.stem import WordNetLemmatizer
from sklearn.preprocessing import LabelEncoder
import unicodedata
import unidecode
# from autocorrect import Speller
from string import punctuation
# from wordcloud import WordCloud, STOPWORDS
# from textblob import TextBlob
import re
import string
from nltk.probability import FreqDist
from nltk.util import ngrams
from nltk.tokenize import word_tokenize
from nltk.stem import WordNetLemmatizer
from wordcloud import WordCloud
from textblob import TextBlob
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfVectorizer
from gensim.models import Word2Vec
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier, BaggingClassifier, AdaBoostClassifier, GradientBoostingClassifier
from xgboost import XGBClassifier
from sklearn.metrics import classification_report, confusion_matrix
from keras.callbacks import EarlyStopping, ModelCheckpoint
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.layers import Dense, Input, LSTM, Embedding, Dropout, Activation, Flatten, Bidirectional, GlobalMaxPool1D
from tensorflow.keras.models import Model, Sequential
from tensorflow.keras.utils import to_categorical
from ann_visualizer.visualize import ann_viz;
from tensorflow.keras.utils import plot_model
from sklearn.metrics import classification_report, confusion_matrix,make_scorer,recall_score
from sklearn.model_selection import GridSearchCV
from imblearn.over_sampling import SMOTE
# from sklearn.datasets import make_classification # for sample data generation
# from collections import Counter # for counting class labels
from sklearn.metrics import precision_score
from sklearn.metrics import f1_score
from sklearn.metrics import accuracy_score
Load data
data = pd.read_excel("data.xlsx")
data.head()
| Unnamed: 0 | Data | Countries | Local | Industry Sector | Accident Level | Potential Accident Level | Genre | Employee or Third Party | Critical Risk | Description | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 2016-01-01 | Country_01 | Local_01 | Mining | I | IV | Male | Third Party | Pressed | While removing the drill rod of the Jumbo 08 f... |
| 1 | 1 | 2016-01-02 | Country_02 | Local_02 | Mining | I | IV | Male | Employee | Pressurized Systems | During the activation of a sodium sulphide pum... |
| 2 | 2 | 2016-01-06 | Country_01 | Local_03 | Mining | I | III | Male | Third Party (Remote) | Manual Tools | In the sub-station MILPO located at level +170... |
| 3 | 3 | 2016-01-08 | Country_01 | Local_04 | Mining | I | I | Male | Third Party | Others | Being 9:45 am. approximately in the Nv. 1880 C... |
| 4 | 4 | 2016-01-10 | Country_01 | Local_04 | Mining | IV | IV | Male | Third Party | Others | Approximately at 11:45 a.m. in circumstances t... |
data.shape
(425, 11)
data.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 425 entries, 0 to 424 Data columns (total 11 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Unnamed: 0 425 non-null int64 1 Data 425 non-null datetime64[ns] 2 Countries 425 non-null object 3 Local 425 non-null object 4 Industry Sector 425 non-null object 5 Accident Level 425 non-null object 6 Potential Accident Level 425 non-null object 7 Genre 425 non-null object 8 Employee or Third Party 425 non-null object 9 Critical Risk 425 non-null object 10 Description 425 non-null object dtypes: datetime64[ns](1), int64(1), object(9) memory usage: 36.7+ KB
Observations:
Step 2: Data cleansing [ 5 points ]
2a. Column "Unnamed: 0" is not required, hence deleting the column.
data=data.drop(columns='Unnamed: 0')
data.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 425 entries, 0 to 424 Data columns (total 10 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Data 425 non-null datetime64[ns] 1 Countries 425 non-null object 2 Local 425 non-null object 3 Industry Sector 425 non-null object 4 Accident Level 425 non-null object 5 Potential Accident Level 425 non-null object 6 Genre 425 non-null object 7 Employee or Third Party 425 non-null object 8 Critical Risk 425 non-null object 9 Description 425 non-null object dtypes: datetime64[ns](1), object(9) memory usage: 33.3+ KB
2b. One of the most important steps in data pre-processing is refining variable/column names. Column names provide the meaning or context to the data. Renaming column names enhances the readability and understandability of our data, particularly when working with large datasets. It facilitates easier data merging, manipulation, and helps maintain consistency across different datasets. In this dataset, we have refined column names such as "Data" to "Date" and "Genre" to "Gender" for clarity and consistency.
data = data.rename(columns={'Data': 'Date',
'Genre': 'Gender'})
data.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 425 entries, 0 to 424 Data columns (total 10 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Date 425 non-null datetime64[ns] 1 Countries 425 non-null object 2 Local 425 non-null object 3 Industry Sector 425 non-null object 4 Accident Level 425 non-null object 5 Potential Accident Level 425 non-null object 6 Gender 425 non-null object 7 Employee or Third Party 425 non-null object 8 Critical Risk 425 non-null object 9 Description 425 non-null object dtypes: datetime64[ns](1), object(9) memory usage: 33.3+ KB
data.head()
| Date | Countries | Local | Industry Sector | Accident Level | Potential Accident Level | Gender | Employee or Third Party | Critical Risk | Description | |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2016-01-01 | Country_01 | Local_01 | Mining | I | IV | Male | Third Party | Pressed | While removing the drill rod of the Jumbo 08 f... |
| 1 | 2016-01-02 | Country_02 | Local_02 | Mining | I | IV | Male | Employee | Pressurized Systems | During the activation of a sodium sulphide pum... |
| 2 | 2016-01-06 | Country_01 | Local_03 | Mining | I | III | Male | Third Party (Remote) | Manual Tools | In the sub-station MILPO located at level +170... |
| 3 | 2016-01-08 | Country_01 | Local_04 | Mining | I | I | Male | Third Party | Others | Being 9:45 am. approximately in the Nv. 1880 C... |
| 4 | 2016-01-10 | Country_01 | Local_04 | Mining | IV | IV | Male | Third Party | Others | Approximately at 11:45 a.m. in circumstances t... |
2c. Checking null values & duplicate rows in the dataset and removing them.
def eda(data):
print("Running Data Cleansing on the dataframe:")
#Null value check
row_nan_count = data.isnull().any(axis=1).sum()
print(f"1. Number of rows with null values: {row_nan_count}")
# Count duplicates (considering all columns)
num_duplicates = data.duplicated().sum()
print("2. Number of duplicate rows:", num_duplicates)
# Drop Duplicates
print("3. Before deleting duplicate rows, number of records:", data.shape[0]," and columns:", data.shape[1])
print("3.1 Deleting duplicate rows:")
data.drop_duplicates(inplace=True)
#Print final datashape
print("4. After deleting duplicate rows, number of records:", data.shape[0]," and columns:", data.shape[1])
print(data.shape)
data_new=data
eda(data)
Running Data Cleansing on the dataframe: 1. Number of rows with null values: 0 2. Number of duplicate rows: 7 3. Before deleting duplicate rows, number of records: 425 and columns: 10 3.1 Deleting duplicate rows: 4. After deleting duplicate rows, number of records: 418 and columns: 10 (418, 10)
Observations:
def data_summary(df):
summary = pd.DataFrame(df.dtypes, columns = ['dtypes'])
summary = summary.reset_index()
summary.rename(columns={'index': 'Name'}, inplace=True)
summary['Missing_values'] = df.isnull().sum().values
summary['Unique_values'] = df.nunique().values
summary['Duplicate_values'] = df.duplicated().sum()
return summary
data_summary(data)
| Name | dtypes | Missing_values | Unique_values | Duplicate_values | |
|---|---|---|---|---|---|
| 0 | Date | datetime64[ns] | 0 | 287 | 0 |
| 1 | Countries | object | 0 | 3 | 0 |
| 2 | Local | object | 0 | 12 | 0 |
| 3 | Industry Sector | object | 0 | 3 | 0 |
| 4 | Accident Level | object | 0 | 5 | 0 |
| 5 | Potential Accident Level | object | 0 | 6 | 0 |
| 6 | Gender | object | 0 | 2 | 0 |
| 7 | Employee or Third Party | object | 0 | 3 | 0 |
| 8 | Critical Risk | object | 0 | 33 | 0 |
| 9 | Description | object | 0 | 411 | 0 |
data.shape
(418, 10)
data.head()
| Date | Countries | Local | Industry Sector | Accident Level | Potential Accident Level | Gender | Employee or Third Party | Critical Risk | Description | |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2016-01-01 | Country_01 | Local_01 | Mining | I | IV | Male | Third Party | Pressed | While removing the drill rod of the Jumbo 08 f... |
| 1 | 2016-01-02 | Country_02 | Local_02 | Mining | I | IV | Male | Employee | Pressurized Systems | During the activation of a sodium sulphide pum... |
| 2 | 2016-01-06 | Country_01 | Local_03 | Mining | I | III | Male | Third Party (Remote) | Manual Tools | In the sub-station MILPO located at level +170... |
| 3 | 2016-01-08 | Country_01 | Local_04 | Mining | I | I | Male | Third Party | Others | Being 9:45 am. approximately in the Nv. 1880 C... |
| 4 | 2016-01-10 | Country_01 | Local_04 | Mining | IV | IV | Male | Third Party | Others | Approximately at 11:45 a.m. in circumstances t... |
# Printing the hidden duplicate values in the dataset
print('There are still {} duplicates in the dataset as below'.format(data.duplicated(subset=['Description'],keep=False).sum()))
There are still 14 duplicates in the dataset as below
data[data.duplicated(subset=['Description'],keep=False)].sort_values(by='Description')
| Date | Countries | Local | Industry Sector | Accident Level | Potential Accident Level | Gender | Employee or Third Party | Critical Risk | Description | |
|---|---|---|---|---|---|---|---|---|---|---|
| 166 | 2016-07-07 | Country_01 | Local_03 | Mining | IV | V | Male | Third Party | Others | At moments when the MAPERU truck of plate F1T ... |
| 167 | 2016-07-07 | Country_01 | Local_03 | Mining | I | IV | Male | Third Party | Others | At moments when the MAPERU truck of plate F1T ... |
| 261 | 2016-12-01 | Country_01 | Local_03 | Mining | I | IV | Male | Employee | Others | During the activity of chuteo of ore in hopper... |
| 263 | 2016-12-01 | Country_01 | Local_03 | Mining | I | IV | Male | Third Party | Others | During the activity of chuteo of ore in hopper... |
| 412 | 2017-06-20 | Country_01 | Local_01 | Mining | I | IV | Male | Employee | Others | In circumstance, the AHK-903 license plate (Em... |
| 413 | 2017-06-20 | Country_01 | Local_01 | Mining | I | IV | Male | Third Party | Others | In circumstance, the AHK-903 license plate (Em... |
| 130 | 2016-05-26 | Country_03 | Local_10 | Others | I | I | Male | Third Party | Bees | In the geological reconnaissance activity, in ... |
| 131 | 2016-05-26 | Country_03 | Local_10 | Others | I | I | Male | Employee | Others | In the geological reconnaissance activity, in ... |
| 143 | 2016-06-08 | Country_03 | Local_10 | Others | I | I | Male | Third Party | Bees | Project of Vazante that carried out sediment c... |
| 144 | 2016-06-08 | Country_03 | Local_10 | Others | I | I | Male | Third Party | Others | Project of Vazante that carried out sediment c... |
| 387 | 2017-05-06 | Country_02 | Local_07 | Mining | IV | V | Male | Employee | Projection | The employees Márcio and Sérgio performed the ... |
| 388 | 2017-05-06 | Country_02 | Local_07 | Mining | II | V | Male | Employee | Projection | The employees Márcio and Sérgio performed the ... |
| 37 | 2016-02-24 | Country_02 | Local_07 | Mining | I | V | Male | Employee | Others | When starting the activity of removing a coil ... |
| 38 | 2016-02-24 | Country_02 | Local_07 | Mining | I | V | Female | Third Party | Others | When starting the activity of removing a coil ... |
Observations:
We can cleary observe that the above dataframe contains 7 duplicates out of which one or two column values are dissimilar where in the Description is matching.
We also observe that the incidents which are having duplicate values happened during the same time. Hence we will be dropping these hidden duplicates which doesn't support logically.
# Dropping the duplicates we detected above.
data.drop_duplicates(subset=['Description'], keep='first', inplace=True)
print('After removing duplicates the shape of the dataset is:', data.shape)
After removing duplicates the shape of the dataset is: (411, 10)
data_summary(data)
| Name | dtypes | Missing_values | Unique_values | Duplicate_values | |
|---|---|---|---|---|---|
| 0 | Date | datetime64[ns] | 0 | 287 | 0 |
| 1 | Countries | object | 0 | 3 | 0 |
| 2 | Local | object | 0 | 12 | 0 |
| 3 | Industry Sector | object | 0 | 3 | 0 |
| 4 | Accident Level | object | 0 | 5 | 0 |
| 5 | Potential Accident Level | object | 0 | 6 | 0 |
| 6 | Gender | object | 0 | 2 | 0 |
| 7 | Employee or Third Party | object | 0 | 3 | 0 |
| 8 | Critical Risk | object | 0 | 33 | 0 |
| 9 | Description | object | 0 | 411 | 0 |
data.shape
(411, 10)
2c. Exploratory Data Analysis (EDA)
2c.1 Extracting month & year from Date column
Observations:
data['month'] = pd.to_datetime(data['Date']).dt.month
data['year'] = pd.to_datetime(data['Date']).dt.year
data.head()
| Date | Countries | Local | Industry Sector | Accident Level | Potential Accident Level | Gender | Employee or Third Party | Critical Risk | Description | month | year | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2016-01-01 | Country_01 | Local_01 | Mining | I | IV | Male | Third Party | Pressed | While removing the drill rod of the Jumbo 08 f... | 1 | 2016 |
| 1 | 2016-01-02 | Country_02 | Local_02 | Mining | I | IV | Male | Employee | Pressurized Systems | During the activation of a sodium sulphide pum... | 1 | 2016 |
| 2 | 2016-01-06 | Country_01 | Local_03 | Mining | I | III | Male | Third Party (Remote) | Manual Tools | In the sub-station MILPO located at level +170... | 1 | 2016 |
| 3 | 2016-01-08 | Country_01 | Local_04 | Mining | I | I | Male | Third Party | Others | Being 9:45 am. approximately in the Nv. 1880 C... | 1 | 2016 |
| 4 | 2016-01-10 | Country_01 | Local_04 | Mining | IV | IV | Male | Third Party | Others | Approximately at 11:45 a.m. in circumstances t... | 1 | 2016 |
Modifying column values of "Accident Level" & "Potential Accident Level"
data.head()
| Date | Countries | Local | Industry Sector | Accident Level | Potential Accident Level | Gender | Employee or Third Party | Critical Risk | Description | month | year | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2016-01-01 | Country_01 | Local_01 | Mining | I | IV | Male | Third Party | Pressed | While removing the drill rod of the Jumbo 08 f... | 1 | 2016 |
| 1 | 2016-01-02 | Country_02 | Local_02 | Mining | I | IV | Male | Employee | Pressurized Systems | During the activation of a sodium sulphide pum... | 1 | 2016 |
| 2 | 2016-01-06 | Country_01 | Local_03 | Mining | I | III | Male | Third Party (Remote) | Manual Tools | In the sub-station MILPO located at level +170... | 1 | 2016 |
| 3 | 2016-01-08 | Country_01 | Local_04 | Mining | I | I | Male | Third Party | Others | Being 9:45 am. approximately in the Nv. 1880 C... | 1 | 2016 |
| 4 | 2016-01-10 | Country_01 | Local_04 | Mining | IV | IV | Male | Third Party | Others | Approximately at 11:45 a.m. in circumstances t... | 1 | 2016 |
Observations:
Replacing the categorical values in the 'Accident Level' and 'Potential Accident Level' columns with numerical values.
It converts the ordinal categorical variables ('Accident Level' and 'Potential Accident Level') into numerical values, preserving the order or hierarchy among the categories.
This numerical representation allows the machine learning model to better understand the relationship between different levels of accidents and potential accident levels.
data['Potential Accident Level'] = data['Potential Accident Level'].replace('VI', 'V')
data['Accident Level'].replace({'I': 0, 'II': 1, 'III': 2, 'IV':3, 'V':4}, inplace=True)
data['Potential Accident Level'].replace({'I': 0, 'II': 1, 'III': 2, 'IV':3, 'V':4,}, inplace=True)
2c.2 Checking unique values in each column
print("Printing unique values in each column:")
print('')
for col_name in data.columns:
if(col_name!='Date' and col_name!='Description'):
print(col_name, ":")
print('--------------------------------------')
print(data[col_name].unique())
print('')
Printing unique values in each column: Countries : -------------------------------------- ['Country_01' 'Country_02' 'Country_03'] Local : -------------------------------------- ['Local_01' 'Local_02' 'Local_03' 'Local_04' 'Local_05' 'Local_06' 'Local_07' 'Local_08' 'Local_10' 'Local_09' 'Local_11' 'Local_12'] Industry Sector : -------------------------------------- ['Mining' 'Metals' 'Others'] Accident Level : -------------------------------------- [0 3 2 1 4] Potential Accident Level : -------------------------------------- [3 2 0 1 4] Gender : -------------------------------------- ['Male' 'Female'] Employee or Third Party : -------------------------------------- ['Third Party' 'Employee' 'Third Party (Remote)'] Critical Risk : -------------------------------------- ['Pressed' 'Pressurized Systems' 'Manual Tools' 'Others' 'Fall prevention (same level)' 'Chemical substances' 'Liquid Metal' 'Electrical installation' 'Confined space' 'Pressurized Systems / Chemical Substances' 'Blocking and isolation of energies' 'Suspended Loads' 'Poll' 'Cut' 'Fall' 'Bees' 'Fall prevention' '\nNot applicable' 'Traffic' 'Projection' 'Venomous Animals' 'Plates' 'Projection/Burning' 'remains of choco' 'Vehicles and Mobile Equipment' 'Projection/Choco' 'Machine Protection' 'Power lock' 'Burn' 'Projection/Manual Tools' 'Individual protection equipment' 'Electrical Shock' 'Projection of fragments'] month : -------------------------------------- [ 1 2 3 4 5 6 7 8 9 10 11 12] year : -------------------------------------- [2016 2017]
Observations:
2c.3 Univariate Analysis
Univariate Analysis helps in examining the distribution and summary statistics of a single variable. The following graphs show a count plot and a pie diagram for the variables Countries, Local cities, Industry sector, Accident Level, Potential Accident Level, Gender, Category of employees, critical risk, month, year that have been affected by the accidents.
#Function to draw count plot.
def drawcountplot(column):
# Create the countplot
ax = sns.countplot(x=column, data=data)
plt.title(column)
# Display the plot
# Get current figure using plt.gcf()
fig = plt.gcf()
fig.set_size_inches((10, 5))
# Get bar heights (counts)
counts = [patch.get_height() for patch in ax.containers[0].patches]
# Add text labels above bars (adjust y-position as needed)
for i, (x, count) in enumerate(zip(ax.containers[0].patches, counts)):
y_pos = count + 0.1 # Adjust y-position to avoid overlapping bars
ax.text(x.get_x() + x.get_width() / 2, y_pos, str(count), ha='center', va='bottom')
if(column=='Critical Risk'):
plt.xticks(rotation=90)
plt.show()
def draw_count_plot(df,col):
if col not in df.columns:
raise ValueError(f"Column '{col}' not found in the DataFrame.")
plt.figure(figsize=(20, 15))
# Plotting countplot
plt.subplot(2, 2, 1)
sns.countplot(data=df, x=col, palette="pastel",order=df[col].value_counts().index)
plt.title(col)
# Plotting pie chart
plt.subplot(2, 2, 2)
plt.pie(df[col].value_counts(), autopct="%.2f", labels=df[col].value_counts().index, shadow=True, startangle=-135)
plt.title(col)
plt.show()
Printing all univariate graphs
for col_name in data.columns:
if(col_name!='Date' and col_name!='Description'):
print(col_name)
draw_count_plot(data, col_name)
Countries
Local
Industry Sector
Accident Level
Potential Accident Level
Gender
Employee or Third Party
Critical Risk
month
year
for col_name in data.columns:
if(col_name!='Date' and col_name!='Description'):
drawcountplot(col_name)
Observations:
one-hot encoding:
One-hot encoding is a process used to convert categorical variables into a numerical format that can be provided to machine learning algorithms to improve model performance. For each unique category in the categorical variable, a new binary column is created. If an observation belongs to a particular category, the corresponding binary column is marked as 1, while all other binary columns are marked as 0. Here we are encoding columns 'Countries', 'Industry Sector','Gender', 'Employee or Third Party'
for col_name in data.columns:
print(col_name)
Date Countries Local Industry Sector Accident Level Potential Accident Level Gender Employee or Third Party Critical Risk Description month year
category_cols = ['Countries', 'Industry Sector','Gender', 'Employee or Third Party']
encoded_data = pd.get_dummies(data, columns=category_cols, dtype=int)
encoded_data.info()
<class 'pandas.core.frame.DataFrame'> Index: 411 entries, 0 to 424 Data columns (total 19 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Date 411 non-null datetime64[ns] 1 Local 411 non-null object 2 Accident Level 411 non-null int64 3 Potential Accident Level 411 non-null int64 4 Critical Risk 411 non-null object 5 Description 411 non-null object 6 month 411 non-null int32 7 year 411 non-null int32 8 Countries_Country_01 411 non-null int64 9 Countries_Country_02 411 non-null int64 10 Countries_Country_03 411 non-null int64 11 Industry Sector_Metals 411 non-null int64 12 Industry Sector_Mining 411 non-null int64 13 Industry Sector_Others 411 non-null int64 14 Gender_Female 411 non-null int64 15 Gender_Male 411 non-null int64 16 Employee or Third Party_Employee 411 non-null int64 17 Employee or Third Party_Third Party 411 non-null int64 18 Employee or Third Party_Third Party (Remote) 411 non-null int64 dtypes: datetime64[ns](1), int32(2), int64(13), object(3) memory usage: 61.0+ KB
encoded_data.head()
| Date | Local | Accident Level | Potential Accident Level | Critical Risk | Description | month | year | Countries_Country_01 | Countries_Country_02 | Countries_Country_03 | Industry Sector_Metals | Industry Sector_Mining | Industry Sector_Others | Gender_Female | Gender_Male | Employee or Third Party_Employee | Employee or Third Party_Third Party | Employee or Third Party_Third Party (Remote) | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2016-01-01 | Local_01 | 0 | 3 | Pressed | While removing the drill rod of the Jumbo 08 f... | 1 | 2016 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 |
| 1 | 2016-01-02 | Local_02 | 0 | 3 | Pressurized Systems | During the activation of a sodium sulphide pum... | 1 | 2016 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
| 2 | 2016-01-06 | Local_03 | 0 | 2 | Manual Tools | In the sub-station MILPO located at level +170... | 1 | 2016 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 |
| 3 | 2016-01-08 | Local_04 | 0 | 0 | Others | Being 9:45 am. approximately in the Nv. 1880 C... | 1 | 2016 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 |
| 4 | 2016-01-10 | Local_04 | 3 | 3 | Others | Approximately at 11:45 a.m. in circumstances t... | 1 | 2016 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 |
Bi-variate Analysis
Bivariate analysis is a statistical method used to examine the relationship between two variables. It helps to understand whether there is an association or correlation between the two variables.
def bivariate_analysis(x_col, hue_col, hue_order_col, data):
plt.figure(figsize=(12,5))
ax = sns.countplot(x=data[x_col], hue=data[hue_col], hue_order=data[hue_order_col].value_counts().sort_index().index, palette='pastel', edgecolor='.4', saturation=1)
total = sum(data[x_col].value_counts())
for p in ax.patches:
ax.annotate('{}'.format(p.get_height()),
(p.get_x(), p.get_height()),
size=12,
xytext = (0, 3),
textcoords = 'offset points')
title=hue_col+" by "+x_col
plt.title(title);
plt.ylabel('Count');
plt.legend(loc='upper right')
Generating bi-variate graphs of different features with Accident Level
bi_variate_columns=['Countries', 'Local', 'Industry Sector', 'Gender', 'Employee or Third Party','month','year' ]
for col_name in data.columns:
if(col_name in bi_variate_columns):
bivariate_analysis(col_name,'Accident Level', 'Accident Level', data )
Bi-variate analysis for Accident Levels by Critical Risk
plt.figure(figsize=(10,22))
ax = sns.countplot(y = data['Critical Risk'], hue=data['Accident Level'], hue_order=data['Accident Level'].value_counts().sort_index().index, palette='pastel', edgecolor='.4', saturation=1)
plt.title('Accident level counts by Critical Risk');
plt.ylabel('Count');
plt.legend(loc='upper right')
<matplotlib.legend.Legend at 0x283804650>
bivariate_analysis('Gender', 'Employee or Third Party','Employee or Third Party', data )
bivariate_analysis('Countries', 'Local','Local', data )
bivariate_analysis('Accident Level', 'Local','Local', data )
Observations:
# Correlation
le = LabelEncoder()
df_enc = data.apply(le.fit_transform)
plt.figure(figsize=(12,12))
plt.title('Correlation_Matrix', fontsize=20)
sns.heatmap(df_enc.corr(), square=True, cmap='twilight', annot=True, linewidth=0.2);
Observations:
# Count of Accidents grouped by Accident Level and Potential accident level
plt.figure(figsize = (16,7))
sns.heatmap(pd.crosstab(data['Accident Level'], data['Critical Risk']), square=True, cmap='PiYG', annot=True, linewidth=0.1);
Observations:
Accident Levels by month
ct = pd.crosstab(columns=data['Accident Level'],index=data['month'])
ax = ct.plot(kind="bar",stacked=False,figsize=(13,6))
ax.set_ylabel('No. of accidents')
ax.set_xlabel('Month')
Text(0.5, 0, 'Month')
Observations:
Step 3: Data preprocessing (NLP Preprocessing techniques) [ 7 points ]
There are following ways for Data preprocessing in NLP:
data['Description']
0 While removing the drill rod of the Jumbo 08 f...
1 During the activation of a sodium sulphide pum...
2 In the sub-station MILPO located at level +170...
3 Being 9:45 am. approximately in the Nv. 1880 C...
4 Approximately at 11:45 a.m. in circumstances t...
...
420 Being approximately 5:00 a.m. approximately, w...
421 The collaborator moved from the infrastructure...
422 During the environmental monitoring activity i...
423 The Employee performed the activity of strippi...
424 At 10:00 a.m., when the assistant cleaned the ...
Name: Description, Length: 411, dtype: object
data['Description'][2]
'In the sub-station MILPO located at level +170 when the collaborator was doing the excavation work with a pick (hand tool), hitting a rock with the flat part of the beak, it bounces off hitting the steel tip of the safety shoe and then the metatarsal area of \u200b\u200bthe left foot of the collaborator causing the injury.'
stop_words = set(stopwords.words("english"))
print(stop_words)
{"couldn't", 'll', 'myself', "mustn't", 'down', 'weren', 'had', 'is', 'against', 'who', 'her', 'were', 'here', 'they', 'some', 'you', 'each', 'this', 'no', 'most', 'haven', 'such', 'there', 'further', 've', 'didn', 'at', 'it', 'then', 'other', 'don', 'shan', "should've", 'after', "shan't", 'whom', 'in', "hasn't", 'i', 'out', 'not', 'into', 'above', "needn't", 'my', "you've", 'own', 'we', 'am', 'm', 'will', 'off', "haven't", 'him', 'ours', 'but', 's', 'as', 'what', 'ma', 'for', 'yourself', 'was', 'himself', 'doing', 'which', 'be', 'won', 'isn', "wasn't", "you'll", 'has', 'do', 'than', 'few', "hadn't", "shouldn't", 'or', 'does', 'our', 'me', "didn't", 'before', 'again', 'should', "weren't", 'up', 'yourselves', 'have', "doesn't", 'to', 'nor', 'now', 'hadn', 'if', 'aren', 'that', 'having', 'those', 'can', 'hasn', 'how', 'only', 'once', 'wouldn', 'the', 'theirs', 'd', 'their', 'too', 'on', 'because', 'from', 'yours', 'its', 'a', 'same', 'she', 'themselves', 'are', 'over', 'so', 'herself', 'them', 'where', 'under', "she's", 'needn', "that'll", 'your', 'and', 'o', 'did', 'of', 'between', "wouldn't", 'being', 'y', 'why', "you're", 'ourselves', 'been', 'by', 'both', 'about', 'any', 'with', 'hers', 'these', 't', "mightn't", 'an', 're', "you'd", 'all', 'shouldn', "it's", 'more', 'mustn', 'when', "don't", "isn't", 'mightn', 'during', 'couldn', 'doesn', 'just', 'while', 'his', 'through', 'he', 'until', "aren't", 'itself', 'very', "won't", 'ain', 'below', 'wasn'}
Observations:
# Function to remove stop words (using for loop)
def remove_stopwords(text):
tokens = text.split()
filtered_words = [word for word in tokens if word not in stop_words]
return ' '.join(filtered_words)
# Function to remove Punctuation
def remove_punctuation(x):
exclude = set(string.punctuation)
return ''.join(ch for ch in x if ch not in exclude)
# Function for nlp data pre processing
def nlpDataPreProcessing(dataframe, column):
#lower case
print("1. converting the description into lower case")
dataframe[column]=dataframe[column].str.lower()
#remove punctuation
print("2. Removing punctuation from description")
dataframe[column] = dataframe[column].apply(remove_punctuation)
#remove stopwords
print("3. Removing stop words")
dataframe[column] = dataframe[column].apply(remove_stopwords)
# Lemmatization
def lemmatization(text):
# Initialize the object for Lemmatizer class
lemmatizer = nltk.stem.WordNetLemmatizer()
# Set the stopwords to English
stopwords = nltk.corpus.stopwords.words('english')
# Normalize the text in order deal with accented words and unicodes
text = (unicodedata.normalize('NFKD', text).encode('ascii', 'ignore').decode('utf-8', 'ignore').lower())
# Consider only alphabets and numbers from the text
words = re.sub(r'[^a-zA-Z.,!?/:;\"\'\s]', '', text).split()
# Consider the words which are not in stopwords of english and lemmatize them
lemmatizer = nltk.stem.WordNetLemmatizer()
lems = [lemmatizer.lemmatize(i) for i in words if i not in stopwords]
# #remove non-alphabetical characters like '(', '.' or '!'
# alphas = [i for i in lems if (i.isalpha() or i.isnumeric()) and (i not in stopwords)]
words = [w for w in lems if len(w)>2]
return words
nlpDataPreProcessing(data,'Description')
1. converting the description into lower case 2. Removing punctuation from description 3. Removing stop words
data['Description'].head()
0 removing drill rod jumbo 08 maintenance superv... 1 activation sodium sulphide pump piping uncoupl... 2 substation milpo located level 170 collaborato... 3 945 approximately nv 1880 cx695 ob7 personnel ... 4 approximately 1145 circumstances mechanics ant... Name: Description, dtype: object
Observations:
Generating tokens from Description. These tokens will be used for generating 1-gram, 2-gram and n-gram.
#Generating tokens
tokens = lemmatization(' '.join(data['Description'].sum().split()))
print(tokens)
['removing', 'drill', 'rod', 'jumbo', 'maintenance', 'supervisor', 'proceeds', 'loosen', 'support', 'intermediate', 'centralizer', 'facilitate', 'removal', 'seeing', 'mechanic', 'support', 'one', 'end', 'drill', 'equipment', 'pull', 'hand', 'bar', 'accelerate', 'removal', 'moment', 'bar', 'slide', 'point', 'support', 'tightens', 'finger', 'mechanic', 'drilling', 'bar', 'beam', 'jumboactivation', 'sodium', 'sulphide', 'pump', 'piping', 'uncoupled', 'sulfide', 'solution', 'designed', 'area', 'reach', 'maid', 'immediately', 'made', 'use', 'emergency', 'shower', 'directed', 'ambulatory', 'doctor', 'later', 'hospital', 'note', 'sulphide', 'solution', 'gram', 'litersubstation', 'milpo', 'located', 'level', 'collaborator', 'excavation', 'work', 'pick', 'hand', 'tool', 'hitting', 'rock', 'flat', 'part', 'beak', 'bounce', 'hitting', 'steel', 'tip', 'safety', 'shoe', 'metatarsal', 'area', 'left', 'foot', 'collaborator', 'causing', 'injury', 'approximately', 'personnel', 'begin', 'task', 'unlocking', 'soquet', 'bolt', 'bhb', 'machine', 'penultimate', 'bolt', 'identified', 'hexagonal', 'head', 'worn', 'proceeding', 'cristobal', 'auxiliary', 'assistant', 'climb', 'platform', 'exert', 'pressure', 'hand', 'dado', 'key', 'prevent', 'coming', 'bolt', 'moment', 'two', 'collaborator', 'rotate', 'lever', 'anticlockwise', 'direction', 'leaving', 'key', 'bolt', 'hitting', 'palm', 'left', 'hand', 'causing', 'injuryapproximately', 'circumstance', 'mechanic', 'anthony', 'group', 'leader', 'eduardo', 'eric', 'fernandezinjuredthe', 'three', 'company', 'impromec', 'performed', 'removal', 'pulley', 'motor', 'pump', 'zaf', 'marcy', 'length', 'weight', 'locked', 'proceed', 'heating', 'pulley', 'loosen', 'come', 'fall', 'distance', 'meter', 'high', 'hit', 'instep', 'right', 'foot', 'worker', 'causing', 'injury', 'describedunloading', 'operation', 'ustulado', 'bag', 'need', 'unclog', 'discharge', 'mouth', 'silo', 'truck', 'performing', 'procedure', 'maneuver', 'unhooking', 'hose', 'without', 'total', 'depressurisation', 'mouth', 'projecting', 'ustulado', 'powder', 'collaborator', 'caused', 'irritation', 'eyescollaborator', 'report', 'street', 'holding', 'left', 'hand', 'volumetric', 'balloon', 'slipped', 'placing', 'hand', 'ground', 'volumetric', 'balloon', 'ended', 'breaking', 'caused', 'small', 'wound', 'left', 'handapproximately', 'mechanic', 'technician', 'jose', 'tecnomin', 'verified', 'transmission', 'belt', 'pump', 'acid', 'plant', 'proceeded', 'turn', 'pulley', 'manually', 'unexpectedly', 'instant', 'electrician', 'supervisor', 'miguel', 'eka', 'mining', 'grab', 'transmission', 'belt', 'verify', 'tension', 'point', 'finger', 'trapsemployee', 'sitting', 'resting', 'area', 'level', 'raise', 'bore', 'suffered', 'sudden', 'illness', 'falling', 'suffering', 'excoriation', 'facemoment', 'forklift', 'operator', 'went', 'manipulate', 'big', 'bag', 'bioxide', 'section', 'front', 'ladder', 'lead', 'area', 'manual', 'displacement', 'splashed', 'spent', 'height', 'forehead', 'fissure', 'pipe', 'subsequently', 'spilling', 'left', 'eye', 'collaborator', 'went', 'nearby', 'eyewash', 'cleaning', 'immediately', 'medical', 'centerinstalling', 'segment', 'polyurethane', 'pulley', 'protective', 'lyner', 'xxcm', 'weighing', 'head', 'pulley', 'ore', 'winch', 'pulley', 'rotated', 'compress', 'lyner', 'inside', 'channel', 'fall', 'housing', 'rubbing', 'right', 'side', 'worker', 'hip', 'generating', 'injury', 'describedpreparing', 'rice', 'lunch', 'day', 'moving', 'pot', 'weight', 'including', 'content', 'evacuate', 'residual', 'water', 'cooking', 'rice', 'positioning', 'pot', 'jaba', 'tilt', 'backwards', 'spilling', 'hot', 'water', 'cook', 'leg', 'cook', 'immediately', 'event', 'applies', 'first', 'aid', 'pouring', 'cold', 'water', 'area', 'injury', 'medical', 'post', 'evaluationcollaborator', 'report', 'working', 'ustulacion', 'realized', 'cyclone', 'duct', 'obstructed', 'opened', 'door', 'try', 'unclog', 'material', 'detached', 'projected', 'towards', 'employee', 'causing', 'small', 'burn', 'right', 'heelmoments', 'operator', 'jumbo', 'tried', 'energize', 'equipment', 'proceed', 'installation', 'split', 'set', 'intersection', 'remove', 'lock', 'opening', 'electric', 'board', 'lifting', 'thermomagnetic', 'key', 'make', 'phase', 'ground', 'phase', 'contact', 'panel', 'shell', 'producing', 'flash', 'reach', 'operator', 'causing', 'injury', 'describeddue', 'accumulation', 'waelz', 'conveyor', 'trailer', 'filter', 'employee', 'performed', 'cleaning', 'shutter', 'using', 'air', 'lance', 'surprised', 'fall', 'product', 'door', 'passing', 'neck', 'collar', 'aramid', 'jacket', 'causing', 'burn', 'neck', 'shoulderemployee', 'working', 'thermal', 'shock', 'caused', 'splash', 'zinc', 'direction', 'employee', 'despite', 'using', 'indicated', 'ppe', 'hit', 'small', 'spatter', 'passed', 'facila', 'hood', 'small', 'burn', 'face', 'regionrp', 'level', 'circumstance', 'worker', 'company', 'performing', 'task', 'diamond', 'drilling', 'assistant', 'jhonatan', 'injured', 'nilton', 'preparing', 'increase', 'perforation', 'pipe', 'located', 'scaffolding', 'jhonatan', 'lift', 'one', 'end', 'tube', 'support', 'pulley', 'equipment', 'frame', 'end', 'working', 'scaffolding', 'moment', 'nilton', 'lift', 'end', 'pipe', 'scaffolding', 'position', 'frame', 'upper', 'part', 'pipe', 'come', 'pulley', 'falling', 'striking', 'right', 'hand', 'worker', 'jhonatan', 'bolt', 'lateral', 'part', 'frame', 'causing', 'injury', 'describeddue', 'overheating', 'bar', 'row', 'cell', 'spark', 'produced', 'projected', 'manages', 'reach', 'chief', 'guard', 'corridor', 'producing', 'first', 'degree', 'burn', 'neckauxiliary', 'wheel', 'cathode', 'crane', 'changed', 'area', 'bearing', 'heated', 'hit', 'hammer', 'chisel', 'one', 'end', 'bearing', 'track', 'detachment', 'bearing', 'piece', 'occurred', 'impacting', 'thigh', 'right', 'leg', 'producing', 'cut', 'ambulance', 'called', 'transferred', 'clinicworker', 'manuel', 'making', 'disconnection', 'power', 'cable', 'gate', 'intersection', 'manco', 'street', 'cajamarquilla', 'order', 'remove', 'circumstance', 'jose', 'worker', 'company', 'removing', 'rope', 'tied', 'body', 'gate', 'yield', 'fall', 'pulling', 'warning', 'post', 'hit', 'helmet', 'standing', 'side', 'operator', 'samuel', 'open', 'container', 'subsequent', 'loading', 'silver', 'concentrate', 'opened', 'first', 'gate', 'afterwards', 'try', 'open', 'second', 'door', 'product', 'opening', 'latter', 'first', 'one', 'open', 'impact', 'handle', 'safety', 'lens', 'generates', 'injury', 'left', 'cheekbone', 'face', 'operatorraise', 'chamber', 'operator', 'assistant', 'removed', 'drilling', 'bar', 'drilling', 'machine', 'weight', 'approx', 'holding', 'top', 'stroke', 'assisted', 'jib', 'move', 'horizontally', 'operator', 'jib', 'bottom', 'slide', 'moving', 'top', 'drill', 'bar', 'causing', 'assistant', 'bar', 'enforce', 'assistant', 'hand', 'bar', 'piston', 'equipmentaligning', 'right', 'bracket', 'tower', 'releasing', 'tension', 'applied', 'tirford', 'pushing', 'lever', 'towards', 'tension', 'release', 'point', 'return', 'mechanical', 'effect', 'overcoming', 'resistance', 'lineman', 'operator', 'reshaping', 'hand', 'assistant', 'beating', 'assistant', 'frontal', 'regionloosening', 'truck', 'steering', 'cylinder', 'bolt', 'using', 'power', 'cable', 'socket', 'force', 'exerted', 'favor', 'equipment', 'bolt', 'suddenly', 'retired', 'employee', 'hit', 'hand', 'structure', 'equipment', 'causing', 'injuryoperator', 'deslaminadora', 'section', 'unlocking', 'sheet', 'zinc', 'stuck', 'enter', 'slide', 'stacking', 'table', 'requires', 'support', 'mollares', 'help', 'hold', 'sheet', 'place', 'entry', 'chute', 'slide', 'moment', 'releasing', 'blade', 'tilted', 'brushed', 'mollaress', 'left', 'leg', 'collaborator', 'went', 'nearby', 'eyewash', 'cleaning', 'immediately', 'medical', 'centeroperator', 'willing', 'manually', 'displace', 'zinc', 'sheet', 'adhered', 'aluminum', 'cathode', 'moment', 'blade', 'detached', 'blade', 'released', 'cathode', 'bending', 'grazing', 'collaborator', 'right', 'hand', 'producing', 'small', 'cut', 'knuckle', 'finger', 'worker', 'made', 'use', 'glove', 'leather', 'worker', 'transferred', 'medical', 'unit', 'first', 'aidend', 'lunch', 'enabled', 'place', 'side', 'winche', 'control', 'room', 'get', 'short', 'walk', 'slip', 'sits', 'floor', 'making', 'contact', 'left', 'knee', 'taking', 'importance', 'rest', 'guard', 'guard', 'finished', 'safety', 'communicates', 'fact', 'reason', 'derived', 'natclar', 'attentionend', 'rock', 'break', 'intersection', 'ramp', 'opening', 'access', 'ventilation', 'chimney', 'master', 'loader', 'identifies', 'rock', 'mesh', 'proceeding', 'unload', 'end', 'decides', 'verify', 'still', 'remains', 'positioning', 'line', 'fire', 'time', 'fragment', 'rock', 'fall', 'xxcm', 'cocada', 'mesh', 'impacting', 'lens', 'helmet', 'causing', 'injuryworker', 'carried', 'work', 'level', 'stop', 'placed', 'metal', 'mesh', 'basket', 'soil', 'half', 'scissor', 'mesh', 'fall', 'hit', 'back', 'right', 'handusing', 'griff', 'wrench', 'unscrew', 'rod', 'probe', 'key', 'came', 'move', 'pressing', 'employee', 'finger', 'probeplant', 'operator', 'semikneeling', 'lifting', 'lid', 'gate', 'distributor', 'box', 'secondary', 'mill', 'right', 'knee', 'slip', 'due', 'presence', 'debris', 'spilled', 'platform', 'floor', 'grating', 'gave', 'extra', 'effort', 'left', 'leg', 'generating', 'muscle', 'contracturelevel', 'access', 'time', 'engineer', 'trainee', 'planamieto', 'entered', 'verify', 'amount', 'split', 'set', 'placed', 'scissor', 'support', 'holding', 'notebook', 'pen', 'left', 'hand', 'inspecting', 'roof', 'work', 'lost', 'balance', 'stepping', 'rock', 'holding', 'right', 'hand', 'rock', 'floor', 'causing', 'injury', 'worker', 'time', 'accident', 'wore', 'glove', 'use', 'made', 'difficult', 'take', 'notesworker', 'yaranga', 'working', 'barretilla', 'stop', 'level', 'unloading', 'metal', 'mesh', 'basket', 'ampoloader', 'operator', 'juan', 'barretilla', 'embedded', 'safety', 'boot', 'reacting', 'immediately', 'worker', 'removing', 'limb', 'force', 'managing', 'release', 'foot', 'producing', 'wound', 'right', 'footapproximately', 'circumstance', 'shotcrete', 'launched', 'obb', 'finishing', 'launch', 'first', 'mixkret', 'assistant', 'alpha', 'albertico', 'asks', 'operator', 'mixkret', 'jhony', 'move', 'mixkret', 'access', 'finding', 'cockpit', 'mixkret', 'operator', 'launcher', 'team', 'danon', 'asks', 'come', 'team', 'started', 'noticed', 'danon', 'injured', 'imprisoned', 'team', 'height', 'left', 'rear', 'rim', 'hastial', 'laboremployee', 'clearing', 'pipe', 'tapped', 'right', 'thumb', 'flange', 'causing', 'little', 'traumareplacing', 'telescopic', 'expansion', 'joint', 'hdpe', 'pipe', 'storm', 'drainage', 'pumping', 'system', 'report', 'piece', 'involuntarily', 'moved', 'positioned', 'holder', 'pressing', 'finger', 'holder', 'causing', 'wound', 'right', 'chemowithdrawal', 'kelly', 'bar', 'conductive', 'bar', 'length', 'diameter', 'equipment', 'perforation', 'part', 'two', 'worker', 'one', 'positioned', 'low', 'part', 'tie', 'bar', 'injured', 'one', 'position', 'upper', 'part', 'hold', 'bar', 'positioning', 'bar', 'platform', 'lose', 'control', 'bar', 'moving', 'finger', 'right', 'hand', 'pulley', 'frame', 'time', 'accident', 'worker', 'wearing', 'safety', 'glove', 'drill', 'rig', 'blockedstarting', 'activity', 'removing', 'coil', 'electric', 'cable', 'warehouse', 'help', 'forklift', 'truck', 'operator', 'notice', 'beehive', 'due', 'movement', 'coil', 'bee', 'excited', 'realizing', 'fact', 'operator', 'turned', 'equipment', 'left', 'area', 'people', 'passing', 'stungpreuse', 'inspection', 'jumbo', 'check', 'list', 'equipment', 'operator', 'equipment', 'find', 'behind', 'seat', 'plastic', 'bottle', 'filled', 'liquid', 'apparently', 'mineral', 'water', 'without', 'label', 'labeling', 'take', 'bottle', 'take', 'small', 'sip', 'liquid', 'expelling', 'immediately', 'noticing', 'water', 'immediately', 'proceeds', 'wash', 'enough', 'water', 'transferred', 'medical', 'center', 'attention', 'liquid', 'contact', 'esengrasante', 'product', 'equipment', 'machinery', 'low', 'toxicitymaintenance', 'flyght', 'pump', 'rotor', 'oil', 'pressure', 'lubrication', 'chamber', 'caused', 'chamber', 'cover', 'projected', 'towards', 'employee', 'face', 'striking', 'superficially', 'forehead', 'causing', 'injuryapprox', 'leakage', 'sulfur', 'dioxide', 'section', 'due', 'water', 'seal', 'blowing', 'due', 'overpressure', 'acid', 'plant', 'moment', 'collaborator', 'cormei', 'company', 'eissa', 'cosapi', 'work', 'near', 'impacted', 'area', 'evacuated', 'medical', 'center', 'care', 'returned', 'usual', 'workperforming', 'cutting', 'mesh', 'protruding', 'gable', 'work', 'assistant', 'loader', 'positioned', 'floor', 'using', 'portable', 'ladder', 'held', 'base', 'master', 'loader', 'time', 'loader', 'assistant', 'loses', 'balance', 'falling', 'held', 'mesh', 'hand', 'hanging', 'floor', 'causing', 'injuryoperator', 'center', 'demag', 'performing', 'maintenance', 'transporting', 'hydraulic', 'cylinder', 'help', 'another', 'operator', 'official', 'unbalanced', 'coming', 'cylinder', 'carried', 'press', 'finger', 'left', 'thumb', 'pillar', 'support', 'oven', 'specified', 'figurestart', 'neutral', 'leaching', 'process', 'employee', 'jhonatan', 'proceeds', 'open', 'air', 'valve', 'tank', 'airlift', 'circumstance', 'process', 'solution', 'return', 'chimney', 'solution', 'coming', 'contact', 'arm', 'right', 'foottime', 'two', 'assistant', 'carrying', 'bag', 'cement', 'weighing', 'lamp', 'loader', 'suspended', 'floor', 'left', 'foot', 'one', 'assistant', 'slid', 'hit', 'edge', 'batonoperator', 'cleaned', 'spatula', 'spear', 'one', 'window', 'boiler', 'time', 'force', 'action', 'hit', 'window', 'frame', 'causing', 'injury', 'little', 'finger', 'left', 'hand', 'operator', 'epp', 'boiler', 'cleaninglocomotive', 'operated', 'maperu', 'personnel', 'directed', 'wagon', 'loaded', 'ore', 'waste', 'bin', 'next', 'waste', 'bin', 'patrol', 'car', 'back', 'wagon', 'moment', 'passed', 'change', 'track', 'left', 'rear', 'wheel', 'patrol', 'car', 'leaf', 'rail', 'advancing', 'locomotive', 'leaving', 'patrol', 'car', 'tilted', 'ahead', 'assistant', 'motorist', 'traveled', 'alone', 'patrol', 'car', 'remained', 'inside', 'structure', 'suffered', 'minor', 'bruisespit', 'level', 'radial', 'drilling', 'performed', 'negative', 'hole', 'simba', 'ith', 'equipment', 'assistant', 'equipment', 'operator', 'made', 'change', 'drill', 'bit', 'metal', 'bar', 'hammer', 'released', 'coupling', 'rotation', 'unit', 'abruptly', 'withdrawing', 'hand', 'hit', 'back', 'right', 'hand', 'team', 'structure', 'time', 'accident', 'team', 'paidtime', 'worker', 'another', 'partner', 'preparing', 'move', 'oil', 'cylinder', 'gallon', 'mobile', 'platform', 'mounted', 'rail', 'platform', 'weighing', 'approximately', 'derailed', 'leaf', 'rail', 'order', 'place', 'platform', 'rail', 'worker', 'lift', 'platform', 'instant', 'right', 'hand', 'one', 'trapped', 'rail', 'platform', 'structure', 'held', 'metallic', 'tube', 'protruding', 'platform', 'accident', 'caused', 'bruised', 'wound', 'index', 'finger', 'right', 'hand', 'fracture', 'time', 'accident', 'wore', 'leathertype', 'safety', 'glovesoperator', 'feeding', 'bag', 'big', 'bag', 'containing', 'scrap', 'sheet', 'lifting', 'loaded', 'bag', 'released', 'hook', 'hoist', 'making', 'abrupt', 'contact', 'liquid', 'zinc', 'furnace', 'generating', 'explosion', 'causing', 'operator', 'hit', 'liquid', 'zinccircumstances', 'two', 'worker', 'company', 'incimmet', 'made', 'loading', 'explosive', 'using', 'equipment', 'anfoloader', 'front', 'work', 'sustained', 'shotcreterepentinamente', 'right', 'superior', 'part', 'crown', 'piece', 'rock', 'approx', 'mxmxm', 'impacting', 'basket', 'back', 'helper', 'basket', 'suspended', 'height', 'moment', 'later', 'block', 'rock', 'detached', 'wall', 'gable', 'approx', 'mxmxm', 'impact', 'ampoloader', 'team', 'part', 'block', 'injures', 'operator', 'ampoloader', 'team', 'standing', 'ground', 'equipment', 'anfoloader', 'cabin', 'protection', 'rops', 'fop', 'time', 'accident', 'worker', 'used', 'helmet', 'safety', 'boot', 'suffered', 'polyontusions', 'minor', 'scoria', 'injuriescircumstances', 'two', 'worker', 'company', 'incimmet', 'fectuaban', 'loading', 'explosive', 'using', 'equipment', 'anfoloader', 'front', 'work', 'sustained', 'shotcreterepentinamente', 'right', 'superior', 'part', 'crown', 'piece', 'rock', 'approx', 'mxmxm', 'impacting', 'basket', 'back', 'helper', 'basket', 'suspended', 'height', 'moment', 'later', 'block', 'rock', 'detached', 'wall', 'gable', 'approx', 'mxmxm', 'impact', 'ampoloader', 'team', 'part', 'block', 'injures', 'operator', 'ampoloader', 'team', 'standing', 'ground', 'equipment', 'anfoloader', 'cabin', 'protection', 'rops', 'fop', 'time', 'accident', 'worker', 'used', 'helmet', 'safety', 'boot', 'suffered', 'polyontusions', 'minor', 'scoria', 'injuriesmechanic', 'assistant', 'throwing', 'wooden', 'block', 'support', 'stabilizer', 'hiab', 'crane', 'truck', 'ground', 'descending', 'truck', 'access', 'ladder', 'arriving', 'last', 'step', 'jump', 'towards', 'ground', 'height', 'treading', 'edge', 'one', 'wooden', 'block', 'cause', 'injury', 'left', 'anklemanually', 'moving', 'steel', 'cabinet', 'disposal', 'help', 'another', 'employee', 'operator', 'finger', 'pressed', 'wall', 'cabinet', 'causing', 'injurydischarge', 'waste', 'operator', 'proceeds', 'remove', 'bag', 'hose', 'rolled', 'circumstance', 'one', 'end', 'hose', 'move', 'direction', 'face', 'driver', 'projecting', 'liquid', 'contained', 'impacting', 'ear', 'part', 'facecircumstances', 'operator', 'going', 'level', 'level', 'noticed', 'hydraulic', 'pump', 'inspection', 'cover', 'approx', 'fall', 'stopped', 'equipment', 'activates', 'cat', 'climb', 'upper', 'part', 'equipment', 'moment', 'accommodated', 'cover', 'slide', 'middle', 'finger', 'causing', 'injuryinstalling', 'ripper', 'pin', 'tractor', 'dtn', 'ripper', 'support', 'arm', 'slide', 'pressing', 'second', 'third', 'finger', 'right', 'hand', 'base', 'ripper', 'causing', 'injury', 'describedemployee', 'report', 'lowered', 'cloth', 'purification', 'arranged', 'cart', 'would', 'grab', 'pipe', 'pressing', 'left', 'hand', 'cloth', 'cartend', 'loading', 'explosive', 'work', 'front', 'master', 'loader', 'enters', 'verify', 'mooring', 'blasting', 'accessory', 'retiring', 'top', 'hears', 'sound', 'fragment', 'rock', 'rolling', 'support', 'mesh', 'directs', 'gaze', 'towards', 'crown', 'vertical', 'form', 'point', 'small', 'fragment', 'rock', 'xxcm', 'pass', 'opening', 'mesh', 'sustaining', 'impact', 'forehead', 'time', 'event', 'collaborator', 'used', 'helmet', 'safety', 'lens', 'front', 'support', 'top', 'sacrifice', 'mesh', 'opening', 'support', 'mesh', 'employee', 'performing', 'adjustment', 'tightening', 'operation', 'cutter', 'blade', 'worked', 'neglected', 'key', 'slip', 'causing', 'blade', 'equipment', 'hit', 'causing', 'blunt', 'cut', 'right', 'forearmapproximately', 'circumstance', 'messrs', 'truck', 'crane', 'william', 'cruz', 'culminated', 'shipment', 'block', 'metal', 'plate', 'approximate', 'weight', 'william', 'cross', 'rigger', 'climb', 'onto', 'truck', 'remove', 'sling', 'place', 'foot', 'stretcher', 'supported', 'metal', 'plate', 'moment', 'central', 'part', 'stretcher', 'broken', 'result', 'two', 'foot', 'imprisoned', 'producing', 'injuryplacement', 'last', 'support', 'mesh', 'cloth', 'work', 'moment', 'ground', 'injured', 'collaborator', 'reached', 'electrowelded', 'mesh', 'operator', 'scissor', 'bolter', 'positioned', 'basket', 'pressing', 'mesh', 'one', 'protruding', 'end', 'mesh', 'cross', 'leather', 'glove', 'causing', 'injury', 'right', 'handemployee', 'checked', 'acid', 'leakage', 'shipping', 'area', 'hit', 'splash', 'solution', 'right', 'hemifaceemployee', 'clearing', 'liquid', 'zinc', 'pump', 'oven', 'stepped', 'platform', 'became', 'unbalanced', 'twist', 'left', 'footemployee', 'transiting', 'toward', 'cadmium', 'factory', 'near', 'tank', 'copper', 'sulphate', 'acid', 'solution', 'spilled', 'direction', 'reaching', 'leg', 'causing', 'minor', 'burnscarrying', 'activity', 'cutting', 'electrowelded', 'mesh', 'work', 'front', 'assistant', 'position', 'foot', 'one', 'end', 'mesh', 'leaving', 'end', 'free', 'moment', 'assistant', 'bend', 'make', 'cut', 'shear', 'end', 'free', 'mesh', 'return', 'inertia', 'hitting', 'partner', 'safety', 'lensrefurbishment', 'work', 'hdpe', 'pipe', 'diameter', 'two', 'worker', 'worker', 'secured', 'pipe', 'chain', 'standing', 'basket', 'ampoloader', 'raised', 'height', 'ground', 'pipe', 'slipped', 'impacted', 'arm', 'right', 'causing', 'injury', 'radius', 'right', 'armcircumstances', 'dump', 'truck', 'laden', 'ore', 'entered', 'unload', 'backwards', 'curve', 'upper', 'part', 'via', 'laquia', 'operator', 'notice', 'unevenness', 'road', 'approximately', 'one', 'meter', 'approaching', 'edge', 'overturning', 'truck', 'right', 'side', 'operator', 'traveled', 'alone', 'truck', 'made', 'use', 'safety', 'belt', 'helmet', 'glass', 'time', 'accident', 'unloading', 'process', 'two', 'square', 'accident', 'site', 'test', 'alcohotest', 'operator', 'negativeapproximately', 'level', 'circumstance', 'worker', 'company', 'rock', 'performed', 'anchorage', 'central', 'pin', 'anchoring', 'drilling', 'machine', 'diamantina', 'xrd', 'bob', 'cat', 'assistant', 'cristian', 'injured', 'made', 'adjustment', 'nut', 'central', 'bolt', 'stilson', 'key', 'simultaneously', 'jose', 'control', 'panel', 'made', 'movement', 'rotation', 'unit', 'positioning', 'clamp', 'pin', 'moment', 'frame', 'slid', 'pressing', 'thumb', 'assistant', 'left', 'hand', 'stilson', 'key', 'causing', 'described', 'injury', 'due', 'lack', 'securing', 'frame', 'fixing', 'boltscarried', 'mechanized', 'support', 'scissor', 'heavy', 'equipment', 'operator', 'pick', 'water', 'supply', 'hose', 'towards', 'drum', 'equipment', 'heading', 'towards', 'cabin', 'scissor', 'way', 'piece', 'rock', 'high', 'approx', 'displaces', 'sliding', 'right', 'foot', 'causing', 'injury', 'describedapproximately', 'supervising', 'line', 'clamping', 'pom', 'roy', 'canario', 'returning', 'thickener', 'hit', 'nose', 'metal', 'chute', 'operationemployee', 'performing', 'truck', 'unloading', 'operation', 'iron', 'bundle', 'pressed', 'right', 'finger', 'injured', 'left', 'armloading', 'two', 'blown', 'hole', 'previous', 'blasting', 'use', 'telescopic', 'ladder', 'master', 'loader', 'pull', 'ladder', 'detaching', 'upper', 'support', 'point', 'height', 'fragment', 'rock', 'projected', 'right', 'end', 'ladder', 'hitting', 'master', 'loader', 'cheekbone', 'upper', 'lip', 'producing', 'lesion', 'described', 'master', 'shipper', 'used', 'safety', 'glassesplant', 'stop', 'scheduled', 'maintenance', 'almost', 'end', 'change', 'fitting', 'hdp', 'pipe', 'diameter', 'resident', 'enters', 'work', 'zone', 'bottom', 'supervise', 'work', 'moment', 'four', 'worker', 'anchored', 'harness', 'upper', 'part', 'manipulating', 'accessory', 'tie', 'flange', 'hdp', 'pipe', 'pvc', 'diameter', 'suddenly', 'pvc', 'pipe', 'come', 'support', 'pipe', 'fine', 'material', 'tailing', 'weight', 'fall', 'height', 'meter', 'floor', 'bounce', 'imprisons', 'resident', 'engineer', 'injured', 'worker', 'lower', 'part', 'line', 'fireparking', 'equipment', 'dumper', 'maintenance', 'workshop', 'mechanic', 'asks', 'operator', 'back', 'equipment', 'washing', 'operator', 'start', 'reverse', 'gear', 'cab', 'door', 'fully', 'open', 'upon', 'reaching', 'washing', 'area', 'meter', 'behind', 'brake', 'cabin', 'door', 'close', 'untimely', 'hit', 'face', 'causing', 'minor', 'injury', 'area', 'mechanic', 'floor', 'level', 'safe', 'placecircumstances', 'two', 'worker', 'abratech', 'company', 'putty', 'work', 'inside', 'conditioning', 'tank', 'meter', 'deep', 'covered', 'platform', 'metal', 'grating', 'grating', 'upper', 'part', 'two', 'employee', 'hyt', 'company', 'carried', 'maneuver', 'transfer', 'pump', 'help', 'manual', 'tick', 'worked', 'hooked', 'beam', 'dragging', 'pump', 'metal', 'grating', 'grating', 'suddenly', 'pump', 'hooked', 'metal', 'grate', 'grating', 'trying', 'release', 'metal', 'grid', 'grating', 'fall', 'inside', 'tank', 'hit', 'diagonal', 'channel', 'inside', 'tank', 'impact', 'right', 'arm', 'one', 'worker', 'rub', 'helmet', 'second', 'worker', 'crouching', 'area', 'bomb', 'moved', 'marked', 'tape', 'lookoutaccessing', 'santa', 'novo', 'area', 'order', 'open', 'chop', 'general', 'moving', 'ahead', 'team', 'order', 'open', 'access', 'manetometer', 'came', 'across', 'area', 'steep', 'slope', 'gravel', 'presence', 'certain', 'place', 'access', 'employee', 'slipped', 'coming', 'become', 'unbalanced', 'moment', 'machete', 'left', 'hand', 'came', 'slip', 'right', 'leg', 'knee', 'causing', 'cut', 'cmperforming', 'sleeve', 'removal', 'maneuver', 'hole', 'meter', 'deep', 'general', 'silva', 'pressed', 'one', 'side', 'locking', 'nut', 'rod', 'together', 'jack', 'hold', 'entire', 'weight', 'rod', 'maneuver', 'locking', 'procedure', 'effective', 'weight', 'rod', 'secured', 'steel', 'wire', 'rope', 'probe', 'winch', 'moment', 'driller', 'pedro', 'released', 'brake', 'winch', 'inefficacy', 'locking', 'done', 'one', 'side', 'chestnut', 'without', 'aid', 'monkey', 'caused', 'sliding', 'rod', 'auxiliary', 'prepared', 'manual', 'unlocking', 'rod', 'holding', 'faucet', 'key', 'firmly', 'probe', 'tower', 'composition', 'shifted', 'stem', 'slid', 'hand', 'shifted', 'downward', 'causing', 'left', 'hand', 'strike', 'base', 'probe', 'tower', 'structure', 'causing', 'cut', 'quirodactyl', 'employee', 'taken', 'hospital', 'went', 'medical', 'care', 'wound', 'sutured', 'stitch', 'removed', 'day', 'activitiestrip', 'vehicle', 'end', 'work', 'collaborator', 'rhainer', 'stepped', 'object', 'could', 'identify', 'thus', 'coming', 'pierce', 'sole', 'boot', 'causing', 'small', 'hole', 'sole', 'left', 'foot', 'collaborator', 'perforation', 'possibly', 'due', 'stump', 'wood', 'since', 'area', 'covered', 'collaborator', 'pasture', 'grazed', 'recently', 'near', 'residenceworkshop', 'level', 'box', 'two', 'mechanic', 'manipulated', 'steel', 'plate', 'xcm', 'place', 'gutter', 'workshop', 'able', 'remove', 'scaler', 'plate', 'slide', 'restricts', 'right', 'ring', 'finger', 'gable', 'plate', 'causing', 'injury', 'collaborator', 'used', 'glove', 'time', 'accidentopens', 'suction', 'valve', 'acid', 'pump', 'cable', 'pump', 'come', 'loose', 'pressing', 'finger', 'employee', 'left', 'hand', 'tubing', 'causing', 'fracture', 'distal', 'phalanx', 'photosworker', 'carried', 'disassembly', 'scaffolding', 'body', 'pulpomatic', 'thickener', 'dismantling', 'base', 'scaffold', 'located', 'approximately', 'one', 'meter', 'high', 'floor', 'sump', 'rivet', 'anchor', 'support', 'platform', 'broken', 'causing', 'fall', 'worker', 'impacting', 'right', 'knee', 'support', 'anchored', 'one', 'horizontal', 'scaffolding', 'structureemployee', 'report', 'handling', 'air', 'conditioning', 'pressed', 'right', 'chirodactilo', 'causing', 'contusionparking', 'van', 'next', 'cluster', 'wooden', 'sleeper', 'board', 'driver', 'descending', 'stepped', 'board', 'iron', 'nail', 'protruded', 'long', 'identify', 'board', 'submerged', 'puddle', 'water', 'accident', 'caused', 'minor', 'wound', 'sole', 'left', 'foot', 'time', 'accident', 'worker', 'wearing', 'safety', 'bootsmaintenance', 'locomotive', 'workshop', 'level', 'assistant', 'pulling', 'locomotive', 'chair', 'backwards', 'stumble', 'ventilation', 'grille', 'falling', 'platform', 'locomotive', 'floor', 'workshop', 'height', 'generating', 'injury', 'time', 'accident', 'assistant', 'used', 'safety', 'helmet', 'chin', 'straprb', 'machine', 'lifted', 'weight', 'floor', 'level', 'accidently', 'proceeds', 'pull', 'machine', 'key', 'ton', 'maximum', 'cap', 'lay', 'floor', 'advancing', 'horizontally', 'anchor', 'bolt', 'pig', 'tail', 'type', 'diameter', 'key', 'hooked', 'break', 'transversely', 'pulling', 'force', 'key', 'projected', 'onto', 'injured', 'person', 'left', 'shoulder', 'causing', 'injury', 'injured', 'meter', 'key', 'time', 'incident', 'assistant', 'meter', 'away', 'order', 'cleaningpositioning', 'scissor', 'bolter', 'east', 'stope', 'meter', 'top', 'operator', 'assistant', 'verify', 'ventilation', 'sleeve', 'obstruct', 'support', 'left', 'gable', 'decide', 'section', 'sleeve', 'direct', 'towards', 'main', 'corridor', 'injured', 'person', 'decides', 'climb', 'roof', 'equipment', 'cabin', 'surface', 'square', 'meter', 'carry', 'reinstallation', 'sectioned', 'sleeve', 'without', 'noticing', 'step', 'empty', 'fall', 'equipment', 'height', 'meter', 'time', 'accident', 'operator', 'scissor', 'bolter', 'platform', 'equipment', 'positioned', 'blocked', 'perform', 'maintenance', 'assistant', 'wearing', 'safety', 'helmet', 'chin', 'strapcleaning', 'vertical', 'pipe', 'using', 'hydrojet', 'equipment', 'high', 'pressure', 'hose', 'hose', 'returned', 'due', 'obstruction', 'pipe', 'residue', 'reaching', 'operator', 'actuating', 'equipment', 'pedalbypass', 'level', 'worker', 'company', 'incimet', 'raul', 'operator', 'bolter', 'bolting', 'team', 'rolando', 'assistant', 'retired', 'installing', 'support', 'helical', 'bolt', 'pink', 'team', 'mesh', 'overhanging', 'gable', 'teacher', 'tell', 'assistant', 'cut', 'mesh', 'instant', 'assistant', 'finished', 'cutting', 'mesh', 'suddenly', 'rise', 'hitting', 'face', 'causing', 'injury', 'described', 'approximately', 'luna', 'master', 'loader', 'company', 'incimet', 'carrying', 'loading', 'activity', 'front', 'cruiser', 'level', 'moment', 'tying', 'pentacord', 'crown', 'trying', 'reach', 'fanel', 'left', 'side', 'loses', 'balance', 'movement', 'ladder', 'fall', 'floor', 'resulting', 'accidentmoments', 'workermechanic', 'workshop', 'maintenance', 'wire', 'mining', 'lamp', 'hooked', 'drill', 'hole', 'work', 'table', 'workshop', 'fell', 'impacted', 'left', 'foot', 'causing', 'minor', 'bruise', 'time', 'accident', 'collaborator', 'used', 'safety', 'boot', 'steel', 'toecapgeneral', 'store', 'two', 'store', 'attendant', 'removed', 'compartment', 'rubber', 'mesh', 'material', 'classification', 'weight', 'lifted', 'approx', 'position', 'edge', 'another', 'mesh', 'placed', 'floor', 'litter', 'slightly', 'imprisons', 'index', 'finger', 'right', 'hand', 'one', 'assistant', 'causing', 'minor', 'cutting', 'wound', 'time', 'accident', 'injured', 'worker', 'used', 'leather', 'glovesemployee', 'report', 'attempting', 'manually', 'ingot', 'zinco', 'rotary', 'table', 'ingot', 'hit', 'left', 'hand', 'angle', 'structure', 'ingot', 'pressing', 'finger', 'ingot', 'anglemoving', 'roll', 'electrowelded', 'mesh', 'weight', 'place', 'hopper', 'truck', 'two', 'operator', 'pull', 'roll', 'mesh', 'bring', 'hopper', 'truck', 'time', 'imprisonment', 'left', 'hand', 'one', 'operator', 'mesh', 'body', 'hopper', 'generating', 'described', 'injury', 'time', 'accident', 'operator', 'wearing', 'pvctype', 'safety', 'glovesperforming', 'cleaning', 'lhd', 'block', 'level', 'operator', 'surprised', 'rock', 'block', 'displacement', 'side', 'gallery', 'reaching', 'right', 'leg', 'causing', 'superficial', 'injuryworkshop', 'end', 'welding', 'work', 'small', 'bolter', 'equipment', 'welder', 'proceeds', 'clean', 'inside', 'metal', 'stool', 'impregnated', 'thinner', 'flammable', 'liquid', 'help', 'hammer', 'screwdriver', 'proceeds', 'remove', 'oxide', 'hitting', 'screwdriver', 'hammer', 'produce', 'flash', 'internal', 'base', 'stool', 'produce', 'slight', 'burn', 'right', 'hand', 'welder', 'time', 'accident', 'welder', 'glove', 'left', 'hand', 'approximately', 'cesar', 'operator', 'mine', 'service', 'instant', 'picking', 'cat', 'position', 'one', 'truck', 'crane', 'plate', 'acl', 'raising', 'right', 'hand', 'lower', 'part', 'cat', 'indexed', 'index', 'finger', 'left', 'hand', 'body', 'cylinder', 'valve', 'cat', 'valve', 'turntable', 'upper', 'partemployee', 'report', 'placed', 'air', 'lance', 'tank', 'opened', 'manual', 'air', 'valve', 'projection', 'acid', 'solution', 'heated', 'toward', 'reaching', 'front', 'left', 'thighinjured', 'woman', 'performed', 'cleaning', 'cleaning', 'sink', 'collection', 'room', 'pierced', 'finger', 'fragment', 'glassdischarging', 'sodium', 'hydroxide', 'disconnecting', 'hose', 'employee', 'placed', 'next', 'demineralization', 'suction', 'pump', 'turned', 'receiving', 'projection', 'pump', 'sensor', 'causing', 'degree', 'burnmr', 'jesus', 'operator', 'concrete', 'throwing', 'team', 'alpha', 'shooting', 'shotcrete', 'work', 'applying', 'realizes', 'additive', 'come', 'mix', 'directing', 'lift', 'cover', 'passage', 'valve', 'inch', 'thickness', 'approximately', 'verifying', 'valve', 'open', 'release', 'lid', 'hit', 'third', 'finger', 'left', 'hand', 'base', 'causing', 'injuryemployee', 'performed', 'return', 'load', 'entrance', 'debarking', 'machine', 'trying', 'align', 'cathode', 'pressed', 'right', 'handinjured', 'worker', 'begin', 'work', 'presenting', 'support', 'mesh', 'cloth', 'floor', 'making', 'initial', 'cut', 'mesh', 'section', 'poncho', 'originating', 'remaining', 'mesh', 'wick', 'tip', 'prong', 'protruding', 'trying', 'make', 'second', 'mesh', 'cut', 'positioned', 'edge', 'remaining', 'mesh', 'wick', 'prevent', 'curling', 'point', 'try', 'take', 'shear', 'remove', 'right', 'foot', 'mesh', 'causing', 'mesh', 'roll', 'embed', 'wick', 'tip', 'pole', 'left', 'boot', 'causing', 'injury', 'time', 'accident', 'worker', 'wearing', 'safety', 'bootsddh', 'chamber', 'company', 'explomin', 'located', 'level', 'socorro', 'ramp', 'worker', 'assistant', 'drillerwas', 'dismantling', 'fifth', 'drill', 'rod', 'meter', 'steel', 'weight', 'using', 'stilson', 'key', 'moment', 'operator', 'operates', 'rotation', 'unit', 'drill', 'rod', 'rotates', 'pressing', 'left', 'hand', 'worker', 'base', 'rod', 'holder', 'causing', 'injury', 'left', 'hand', 'time', 'accident', 'drilling', 'assistant', 'used', 'rubber', 'glovescarrying', 'maneuver', 'increase', 'pipe', 'line', 'driller', 'wilder', 'indicates', 'assistant', 'gilton', 'introduce', 'inner', 'pipe', 'drill', 'assistant', 'introduces', 'inner', 'pipe', 'place', 'hand', 'box', 'pipe', 'driller', 'without', 'noticing', 'move', 'pipe', 'assistant', 'hand', 'open', 'chuck', 'rotation', 'unit', 'dropping', 'pipe', 'imprisoning', 'injured', 'person', 'right', 'hand', 'causing', 'injuryemployee', 'report', 'climbing', 'access', 'ladder', 'operating', 'room', 'ustulation', 'surprised', 'projection', 'sulfuric', 'acidperforming', 'geological', 'mapping', 'activity', 'necessary', 'hammer', 'rock', 'analysis', 'moment', 'clerk', 'held', 'pointed', 'fragment', 'slipped', 'third', 'quirodactyl', 'right', 'hand', 'causing', 'superficial', 'cut', 'approximately', 'kevin', 'helper', 'jumbo', 'removed', 'drill', 'rod', 'drilling', 'hole', 'instant', 'break', 'chain', 'subjection', 'table', 'drilling', 'machine', 'sliding', 'achieving', 'rubbing', 'index', 'finger', 'left', 'hand', 'causing', 'injury', 'approximately', 'francisco', 'operator', 'scoop', 'observes', 'polyethylene', 'pipe', 'thrown', 'road', 'proceeding', 'lower', 'equipment', 'found', 'lifting', 'pipe', 'hook', 'right', 'gable', 'piece', 'rock', 'suspended', 'lectrowelded', 'mesh', 'impacting', 'operator', 'right', 'eyebrow', 'causing', 'injuryconducting', 'inspection', 'evaluate', 'activity', 'carried', 'pump', 'house', 'ustulation', 'steam', 'station', 'hit', 'sulfuric', 'acid', 'spill', 'line', 'located', 'pump', 'house', 'thermal', 'recovery', 'boilerconducting', 'inspection', 'evaluate', 'activity', 'carried', 'pump', 'house', 'ustulation', 'steam', 'station', 'struck', 'sulfuric', 'acid', 'spill', 'line', 'located', 'house', 'thermal', 'recovery', 'boiler', 'pumpsemployee', 'sanding', 'piece', 'electrolysis', 'end', 'operation', 'protective', 'cap', 'disk', 'spun', 'back', 'left', 'handdie', 'cutting', 'feeder', 'pead', 'geomembrane', 'blanket', 'weld', 'seam', 'store', 'extruder', 'stylet', 'blade', 'came', 'direction', 'left', 'forearm', 'resulting', 'blunt', 'short', 'injurywelding', 'workshop', 'level', 'tunnel', 'quinoa', 'moment', 'assistant', 'raised', 'wooden', 'strut', 'long', 'diameter', 'weight', 'place', 'work', 'table', 'height', 'tread', 'another', 'wooden', 'strut', 'placed', 'floor', 'losing', 'balance', 'falling', 'level', 'lying', 'laterally', 'concrete', 'wall', 'causing', 'bruise', 'left', 'shouldersunday', 'collaborator', 'medical', 'center', 'saying', 'accident', 'day', 'ago', 'performed', 'internal', 'maintenance', 'work', 'heat', 'exchanger', 'defined', 'confined', 'space', 'risk', 'burning', 'acid', 'leaving', 'confined', 'space', 'employee', 'remove', 'protective', 'glove', 'without', 'passed', 'emergency', 'shower', 'moment', 'skin', 'contact', 'occurs', 'sulfate', 'generating', 'lesionmoments', 'truck', 'transport', 'personnel', 'company', 'mceisa', 'plate', 'ajg', 'moved', 'surface', 'missing', 'reach', 'mouth', 'gearbox', 'respond', 'driver', 'stop', 'truck', 'inspect', 'along', 'maintenance', 'personnel', 'time', 'traveling', 'truck', 'raise', 'cabin', 'manually', 'put', 'change', 'first', 'continue', 'trip', 'culminated', 'task', 'driver', 'support', 'maintenance', 'personnel', 'lower', 'cabin', 'due', 'weight', 'fall', 'hitting', 'driver', 'cabin', 'hopper', 'truck', 'time', 'accident', 'employee', 'wearing', 'safety', 'helmet', 'chin', 'strapcompleting', 'welding', 'work', 'backhoe', 'bucket', 'made', 'hour', 'used', 'glass', 'moon', 'welder', 'feel', 'slight', 'discomfort', 'eye', 'transferred', 'medical', 'service', 'evaluation', 'accident', 'welder', 'used', 'facial', 'mask', 'weldingemployee', 'milpo', 'lima', 'visited', 'facility', 'level', 'waiting', 'personnel', 'cage', 'level', 'drop', 'water', 'fall', 'ceiling', 'height', 'meter', 'approximately', 'product', 'slight', 'filtration', 'crown', 'sustained', 'shotcrete', 'drop', 'enters', 'right', 'eye', 'causing', 'discomfort', 'right', 'eye', 'according', 'employee', 'time', 'accident', 'lens', 'removed', 'clean', 'happened', 'visit', 'interior', 'mineel', 'porvenir', 'substation', 'level', 'assembling', 'metal', 'structure', 'approximately', 'support', 'lifting', 'system', 'three', 'operator', 'try', 'accommodate', 'structure', 'anchor', 'base', 'moment', 'metallic', 'structure', 'slide', 'direction', 'injured', 'worker', 'right', 'hand', 'producing', 'slight', 'right', 'hand', 'accretion', 'head', 'bolt', 'base', 'structure', 'causing', 'injury', 'time', 'accident', 'operator', 'made', 'use', 'safety', 'glovesemployee', 'performing', 'carbon', 'steel', 'pipe', 'marking', 'activity', 'helmet', 'struck', 'tube', 'causing', 'scalp', 'wound', 'due', 'impact', 'helmet', 'sheepskinmaintenance', 'lxpb', 'pump', 'projection', 'silicate', 'pulp', 'reaching', 'right', 'leg', 'employeecircumstances', 'collaborator', 'juveni', 'performed', 'washing', 'tabolas', 'pot', 'washing', 'area', 'suffers', 'feeling', 'dizziness', 'faintness', 'causing', 'fall', 'level', 'producing', 'slight', 'concussion', 'headtransit', 'fuel', 'tanker', 'level', 'level', 'north', 'ramp', 'passing', 'level', 'operator', 'feel', 'right', 'rear', 'tire', 'skid', 'operator', 'performs', 'defensive', 'maneuver', 'truck', 'hit', 'left', 'gable', 'causing', 'injury', 'described', 'time', 'accident', 'pilot', 'copilot', 'wearing', 'safety', 'belt', 'safety', 'glass', 'helmetfield', 'trip', 'return', 'work', 'lunch', 'employee', 'wellfield', 'company', 'slipped', 'loose', 'stone', 'place', 'moment', 'intention', 'balancing', 'tried', 'hold', 'onto', 'tree', 'falling', 'right', 'arm', 'causing', 'fracture', 'distal', 'end', 'radius', 'activity', 'paralyzed', 'employee', 'referred', 'hospital', 'paracatu', 'underwent', 'medical', 'care', 'approximately', 'workshop', 'mechanical', 'maintenance', 'surface', 'orlando', 'boltec', 'assistant', 'macedonio', 'made', 'cut', 'link', 'shorten', 'distance', 'chain', 'hold', 'injection', 'hose', 'resin', 'instant', 'saw', 'blade', 'leaf', 'cutting', 'position', 'affecting', 'second', 'finger', 'left', 'hand', 'causing', 'injurytests', 'soft', 'starter', 'engine', 'belt', 'collaborator', 'igor', 'move', 'around', 'site', 'approximately', 'fall', 'trench', 'electric', 'cable', 'deep', 'found', 'partially', 'discoveredchecking', 'voltage', 'power', 'outlet', 'plug', 'socket', 'make', 'sure', 'connection', 'correct', 'small', 'electrical', 'arc', 'power', 'cord', 'causing', 'slight', 'burn', 'right', 'hand', 'wrist', 'protection', 'system', 'acted', 'immediatelyground', 'team', 'coordinated', 'prospector', 'assistant', 'silva', 'wila', 'prong', 'opening', 'access', 'collect', 'soil', 'sample', 'auxiliar', 'came', 'across', 'tried', 'divert', 'meter', 'right', 'place', 'moment', 'diversion', 'came', 'across', 'marimbondo', 'house', 'front', 'giving', 'time', 'action', 'since', 'thug', 'already', 'agitated', 'silva', 'time', 'sting', 'head', 'another', 'behind', 'neck', 'sting', 'face', 'since', 'allergy', 'test', 'verified', 'allergic', 'reaction', 'washed', 'affected', 'part', 'returned', 'normal', 'activitiesgeological', 'reconnaissance', 'activity', 'farm', 'lazaro', 'team', 'composed', 'felipe', 'divino', 'morais', 'normal', 'activity', 'encountered', 'ciliary', 'forest', 'needed', 'enter', 'forest', 'verify', 'rock', 'outcrop', 'front', 'divine', 'realized', 'opening', 'access', 'machete', 'moment', 'took', 'bite', 'neck', 'attack', 'allergic', 'reaction', 'continued', 'work', 'normally', 'work', 'completed', 'leaving', 'forest', 'access', 'divine', 'assistant', 'attacked', 'snake', 'suffered', 'sting', 'forehead', 'moment', 'moved', 'away', 'area', 'verified', 'type', 'allergic', 'reaction', 'returned', 'normal', 'activitiesclerk', 'peeling', 'pulling', 'sheet', 'came', 'another', 'one', 'struck', 'chirodactile', 'left', 'hand', 'tearing', 'pvc', 'sleeve', 'caused', 'cutprocess', 'washing', 'material', 'becker', 'tip', 'material', 'broken', 'caused', 'cut', 'finger', 'right', 'handcircumstances', 'collaborator', 'performed', 'cleaning', 'ditch', 'deep', 'removing', 'pipe', 'hdpe', 'material', 'estimated', 'weight', 'together', 'two', 'collaborator', 'pushing', 'tube', 'drain', 'dune', 'collaborator', 'hit', 'lower', 'right', 'side', 'lip', 'producing', 'slight', 'blow', 'lip', 'time', 'event', 'collaborator', 'safety', 'helmet', 'glass', 'glove', 'approximately', 'tecnomin', 'winery', 'chagua', 'bodeguero', 'alone', 'cutting', 'wire', 'grinder', 'previously', 'removed', 'protection', 'guard', 'disk', 'inch', 'diameter', 'adapted', 'disk', 'crosscutter', 'approximately', 'inch', 'originating', 'traumatic', 'amputation', 'two', 'finger', 'left', 'handfield', 'trip', 'lajes', 'target', 'junior', 'costa', 'official', 'stepped', 'wooden', 'stump', 'ground', 'approximately', 'pierced', 'boot', 'wounding', 'sole', 'right', 'foot', 'time', 'accident', 'employee', 'using', 'ppe', 'required', 'activity', 'hand', 'free', 'employee', 'taken', 'hospital', 'went', 'medical', 'care', 'released', 'return', 'activity', 'next', 'day', 'worklevel', 'ore', 'hauling', 'activity', 'locomotive', 'bine', 'time', 'convoy', 'traveling', 'hopper', 'assistant', 'motorist', 'riding', 'saddle', 'holding', 'pole', 'struck', 'weakly', 'split', 'set', 'suspended', 'hdp', 'pipeline', 'gable', 'work', 'meter', 'floor', 'time', 'accident', 'assistant', 'wearing', 'safety', 'equipment', 'wearing', 'seatbelt', 'time', 'accident', 'split', 'set', 'accompanied', 'movement', 'path', 'convoyemployee', 'work', 'electrician', 'management', 'electrometallurgy', 'suffers', 'contusion', 'right', 'leg', 'suffering', 'slip', 'height', 'step', 'staircase', 'code', 'ele', 'abb', 'furnace', 'cat', 'ladder', 'immediately', 'referred', 'collaborator', 'medical', 'service', 'treatedtimes', 'worker', 'technician', 'orlando', 'boltec', 'cia', 'wanted', 'pas', 'hand', 'stacker', 'sardinel', 'technician', 'pulled', 'hydraulic', 'arm', 'pushing', 'nail', 'equipment', 'reaching', 'trench', 'rim', 'tied', 'team', 'turn', 'forward', 'falling', 'techniciancircumstances', 'employee', 'made', 'connection', 'electric', 'cable', 'jumbo', 'operator', 'feel', 'discomfort', 'face', 'cleaning', 'hand', 'using', 'rubber', 'glove', 'generating', 'superficial', 'laceration', 'small', 'wound', 'left', 'cheekbonephase', 'iii', 'concentrator', 'plant', 'maintenance', 'personnel', 'carried', 'removal', 'transmission', 'belt', 'flotation', 'cell', 'cleaning', 'moment', 'mechanic', 'removed', 'belt', 'lean', 'left', 'leg', 'slide', 'towards', 'grating', 'floor', 'leaving', 'foot', 'two', 'pipe', 'generating', 'lesion', 'described', 'work', 'carried', 'floor', 'level', 'time', 'accident', 'staff', 'put', 'safety', 'equipmentapproximately', 'operator', 'eustaquio', 'fall', 'metal', 'platform', 'give', 'access', 'tank', 'strong', 'acid', 'leaching', 'stage', 'suffers', 'luxofractures', 'wrist', 'left', 'leaning', 'floor', 'hand', 'operator', 'directed', 'first', 'tank', 'strong', 'acid', 'leaching', 'stage', 'verify', 'entry', 'spent', 'taqueproject', 'vazante', 'carried', 'sediment', 'collection', 'current', 'south', 'mata', 'target', 'drainage', 'serra', 'garrote', 'team', 'composed', 'member', 'wca', 'company', 'leandro', 'jehovanio', 'moving', 'one', 'collection', 'point', 'another', 'inside', 'shallow', 'drainage', 'saw', 'bee', 'carton', 'reaction', 'move', 'away', 'box', 'quickly', 'possible', 'avoid', 'sting', 'ran', 'meter', 'looking', 'safe', 'area', 'exit', 'radius', 'attack', 'bee', 'breno', 'attacked', 'consequently', 'suffered', 'sting', 'belly', 'jehovah', 'hand', 'verified', 'type', 'allergic', 'reaction', 'returned', 'normal', 'activitiesemployee', 'report', 'working', 'brushcutters', 'near', 'stone', 'blade', 'equipment', 'collided', 'piece', 'metal', 'projected', 'toward', 'leg', 'causing', 'injury', 'left', 'legmooring', 'faneles', 'detonating', 'cord', 'completed', 'injured', 'person', 'proceeds', 'tie', 'detonating', 'cord', 'safety', 'guide', 'slow', 'wick', 'distance', 'meter', 'top', 'work', 'moment', 'finish', 'mooring', 'rock', 'bank', 'front', 'height', 'meter', 'fall', 'floor', 'close', 'injured', 'disintegrates', 'several', 'fragment', 'one', 'cmxcmxcm', 'slide', 'fragment', 'rock', 'impact', 'left', 'leg', 'victim', 'time', 'accident', 'operator', 'used', 'safety', 'boot', 'accompanied', 'supervisoractivity', 'construction', 'wall', 'stopper', 'mortar', 'block', 'improve', 'ventilation', 'intermediate', 'zone', 'moment', 'bricklayer', 'assistant', 'preparing', 'complete', 'construction', 'high', 'wall', 'part', 'wall', 'block', 'per', 'block', 'fall', 'towards', 'scaffold', 'mason', 'assistant', 'jump', 'towards', 'accumulation', 'sand', 'located', 'one', 'side', 'avoid', 'hit', 'block', 'fall', 'injury', 'described', 'occurs', 'time', 'accident', 'mason', 'assistant', 'jump', 'height', 'floor', 'work', 'used', 'personal', 'safety', 'equipment', 'reduced', 'impact', 'fallgeologo', 'auxiliary', 'elismar', 'traveled', 'evaluate', 'geological', 'point', 'following', 'gps', 'near', 'drainage', 'following', 'state', 'highway', 'give', 'access', 'aripuana', 'area', 'stopped', 'got', 'vehicle', 'see', 'point', 'identified', 'gps', 'renato', 'distancing', 'seven', 'meter', 'vehicle', 'following', 'road', 'surprised', 'four', 'bite', 'thorn', 'face', 'neck', 'quickly', 'hurried', 'back', 'vehicle', 'moving', 'away', 'place', 'clerk', 'wearing', 'girdle', 'goggles', 'still', 'wearing', 'glove', 'would', 'enter', 'forest', 'area', 'allergic', 'reactiongeologist', 'auxiliary', 'ademir', 'traveled', 'field', 'evaluate', 'geological', 'point', 'following', 'gps', 'near', 'drainage', 'following', 'state', 'highway', 'give', 'access', 'aripuana', 'area', 'stopped', 'got', 'vehicle', 'see', 'point', 'identified', 'gps', 'mario', 'distancing', 'five', 'meter', 'vehicle', 'following', 'road', 'surprised', 'two', 'bite', 'thorn', 'face', 'quickly', 'hurried', 'back', 'vehicle', 'moving', 'away', 'place', 'clerk', 'wearing', 'girdle', 'goggles', 'still', 'wearing', 'glove', 'would', 'enter', 'forest', 'area', 'allergic', 'reactionsafety', 'technical', 'moved', 'field', 'inspection', 'activity', 'way', 'field', 'paused', 'together', 'two', 'team', 'order', 'know', 'drainage', 'point', 'checked', 'safety', 'getting', 'vehicle', 'struck', 'sting', 'weed', 'neck', 'quickly', 'returned', 'vehicle', 'made', 'radio', 'communication', 'two', 'team', 'distanced', 'place', 'clerk', 'wearing', 'legging', 'glass', 'allergic', 'reactionauxiliary', 'geologist', 'traveled', 'field', 'evaluate', 'geological', 'point', 'following', 'gps', 'near', 'drainage', 'following', 'state', 'highway', 'give', 'access', 'aripuana', 'area', 'stopped', 'got', 'vehicle', 'see', 'point', 'identified', 'gps', 'ademir', 'distancing', 'five', 'meter', 'vehicle', 'accompanied', 'geologist', 'mario', 'surprised', 'two', 'bite', 'blow', 'neck', 'quickly', 'hurried', 'back', 'vehicle', 'moving', 'away', 'place', 'clerk', 'wearing', 'girdle', 'goggles', 'still', 'wearing', 'glove', 'would', 'enter', 'forest', 'area', 'allergic', 'reactiontraveling', 'field', 'order', 'make', 'geological', 'mapping', 'geologist', 'manoel', 'accompanied', 'prospector', 'marcos', 'stooped', 'deviate', 'vegetation', 'time', 'received', 'three', 'whistling', 'sting', 'two', 'face', 'one', 'neck', 'allergic', 'reaction', 'activity', 'followed', 'normally', 'eventmoving', 'field', 'make', 'geological', 'mapping', 'prospector', 'marcos', 'accompanied', 'geologist', 'manoel', 'stooped', 'deviate', 'vegetation', 'moment', 'received', 'whistling', 'sting', 'ring', 'finger', 'right', 'hand', 'allergic', 'reaction', 'activity', 'followed', 'normally', 'eventapproximately', 'operator', 'paulo', 'operator', 'filter', 'informed', 'autoclave', 'operator', 'via', 'radio', 'leak', 'side', 'scruber', 'autoclave', 'iii', 'feed', 'stopped', 'control', 'official', 'georli', 'renato', 'initiated', 'procedure', 'closing', 'autoclave', 'transfer', 'valve', 'flash', 'tqs', 'soon', 'break', 'chicken', 'projecting', 'pulp', 'hot', 'reaching', 'three', 'employee', 'inside', 'room', 'near', 'equipmentoperator', 'scissor', 'leaf', 'equipment', 'parked', 'level', 'acc', 'due', 'electrical', 'problem', 'maintenance', 'personnel', 'arrives', 'electrician', 'climb', 'control', 'platform', 'equipment', 'performs', 'verification', 'hydraulic', 'system', 'confirming', 'problem', 'coordination', 'mechanic', 'decide', 'perform', 'test', 'diesel', 'system', 'moment', 'accidentally', 'activates', 'body', 'arm', 'movement', 'lever', 'causing', 'drill', 'arm', 'move', 'downwards', 'generating', 'left', 'hand', 'atricion', 'support', 'pivot', 'tube', 'generating', 'lesion', 'described', 'time', 'accident', 'electrician', 'alone', 'control', 'platform', 'mechanic', 'ground', 'level', 'observing', 'pressure', 'diesel', 'system', 'pressure', 'gaugemechanical', 'technician', 'proceeded', 'perform', 'maintenance', 'motor', 'support', 'tipper', 'decided', 'bring', 'wooden', 'block', 'moved', 'temporary', 'storage', 'material', 'located', 'tipper', 'circumstance', 'sought', 'cue', 'camera', 'tire', 'burst', 'suddenly', 'right', 'involved', 'thunderous', 'sound', 'affected', 'right', 'ear', 'worker', 'tire', 'exploded', 'psi', 'pressure', 'approximately', 'time', 'event', 'stacked', 'pneumatic', 'second', 'one', 'exploded', 'presented', 'cut', 'place', 'energy', 'released', 'tire', 'upper', 'part', 'projected', 'tire', 'left', 'previous', 'guard', 'night', 'shift', 'storage', 'area', 'roof', 'place', 'event', 'affected', 'mechanic', 'located', 'distance', 'worker', 'area', 'truck', 'parked', 'none', 'suffered', 'damage', 'glasslevel', 'access', 'siemag', 'camera', 'roof', 'time', 'piquero', 'civil', 'operator', 'looked', 'stilson', 'key', 'inside', 'metal', 'tool', 'box', 'open', 'metal', 'lid', 'weight', 'hand', 'push', 'lid', 'backwards', 'positioning', 'right', 'hand', 'near', 'base', 'lid', 'causing', 'incentration', 'fifth', 'finger', 'lid', 'structure', 'box', 'height', 'hinge', 'time', 'accident', 'employee', 'wore', 'pad', 'glove', 'reduced', 'consequence', 'injuryhandling', 'lever', 'move', 'sludge', 'employee', 'moved', 'making', 'pendulum', 'movement', 'striking', 'chinchange', 'rim', 'position', 'jumbo', 'moment', 'mechanical', 'technician', 'support', 'electrician', 'disengaged', 'bolt', 'loosening', 'fourth', 'nut', 'help', 'lever', 'metal', 'tube', 'diameter', 'length', 'weight', 'bouncing', 'effect', 'returning', 'initial', 'position', 'hitting', 'palm', 'left', 'hand', 'electrician', 'technician', 'causing', 'injury', 'employee', 'time', 'accident', 'used', 'ppes', 'including', 'leather', 'glovescircumstances', 'operator', 'scooptram', 'proceeded', 'sit', 'equipment', 'closing', 'door', 'take', 'right', 'hand', 'handrail', 'place', 'close', 'door', 'hinge', 'closing', 'trap', 'part', 'worker', 'middle', 'finger', 'worker', 'time', 'accident', 'made', 'use', 'leather', 'safety', 'glovesplant', 'work', 'geho', 'pump', 'reducer', 'accompanying', 'rotation', 'shaft', 'reducer', 'mixed', 'key', 'wrench', 'crown', 'hit', 'housing', 'geho', 'pump', 'attributing', 'union', 'area', 'fifth', 'fourth', 'finger', 'welder', 'right', 'hand', 'causing', 'injury', 'time', 'accident', 'equipment', 'blocked', 'employee', 'used', 'leather', 'glovesaccess', 'level', 'installation', 'activity', 'hydraulic', 'filling', 'pipe', 'diameter', 'installing', 'section', 'height', 'reference', 'floor', 'master', 'hydraulic', 'filling', 'accident', 'partner', 'suffers', 'attrition', 'right', 'hand', 'upper', 'edge', 'scoop', 'lamp', 'roof', 'work', 'generating', 'injury', 'time', 'accident', 'employee', 'used', 'rubber', 'glove', 'frank', 'support', 'another', 'mechanic', 'preparing', 'place', 'floor', 'metal', 'part', 'called', 'rear', 'bridge', 'forklift', 'moment', 'part', 'moving', 'part', 'move', 'generating', 'blow', 'middle', 'finger', 'left', 'handlevel', 'gallery', 'performing', 'manual', 'unlocking', 'load', 'worker', 'prepares', 'cut', 'sacrificial', 'mesh', 'exposed', 'previous', 'turn', 'shot', 'placing', 'inch', 'shear', 'cutting', 'fifth', 'suddenly', 'strained', 'wire', 'mesh', 'return', 'face', 'casionandole', 'injury', 'described', 'activity', 'worker', 'used', 'safety', 'glassescircumstances', 'adjutant', 'scissor', 'bolter', 'came', 'team', 'ladder', 'last', 'step', 'slide', 'approximate', 'height', 'fall', 'sitting', 'floor', 'time', 'accident', 'person', 'involved', 'use', 'helmet', 'rock', 'material', 'crash', 'sitemoments', 'maperu', 'truck', 'plate', 'returned', 'city', 'pasco', 'unit', 'transporting', 'consultant', 'meter', 'main', 'gate', 'lane', 'invaded', 'civilian', 'vehicle', 'making', 'driver', 'turn', 'sharply', 'side', 'right', 'staff', 'company', 'impromec', 'hot', 'melt', 'work', 'pipe', 'impacting', 'two', 'collaborator', 'causing', 'injury', 'described', 'time', 'accident', 'truck', 'traveling', 'according', 'inthinc', 'width', 'road', 'meter', 'activity', 'safety', 'cone', 'warning', 'side', 'road', 'employee', 'used', 'respective', 'epps', 'approx', 'hour', 'operator', 'fernando', 'opening', 'wagon', 'find', 'hardened', 'stake', 'bar', 'approx', 'remove', 'moment', 'press', 'bar', 'hit', 'handexecution', 'drilling', 'target', 'bolt', 'brjcldd', 'made', 'company', 'servitecforaco', 'probe', 'july', 'official', 'josimar', 'silva', 'moment', 'maneuver', 'fish', 'material', 'removing', 'feeder', 'water', 'movement', 'winch', 'realized', 'safety', 'chain', 'loose', 'could', 'curl', 'rod', 'performing', 'chain', 'removal', 'movement', 'placed', 'left', 'hand', 'hose', 'cap', 'hydraulic', 'plate', 'unlocking', 'inner', 'tube', 'abrupt', 'movement', 'chain', 'pushing', 'hand', 'towards', 'hydraulic', 'plate', 'causing', 'injury', 'ring', 'finger', 'hand', 'lesion', 'caused', 'cut', 'quirodactyl', 'need', 'suture', 'point', 'close', 'cutoperator', 'paste', 'filling', 'plant', 'remove', 'floor', 'grating', 'clean', 'lower', 'floor', 'removed', 'close', 'water', 'valve', 'block', 'vacuum', 'two', 'technician', 'entering', 'filter', 'belt', 'notice', 'overflow', 'ask', 'operator', 'reduce', 'load', 'mechanic', 'kept', 'walking', 'without', 'noticing', 'floor', 'one', 'fall', 'void', 'impacting', 'foot', 'left', 'angle', 'floor', 'grating', 'producing', 'injuryaccident', 'occurred', 'time', 'employee', 'partner', 'company', 'carried', 'unloading', 'operation', 'bladder', 'bag', 'cutting', 'bag', 'charging', 'boom', 'silo', 'truck', 'delivery', 'mouth', 'inner', 'plastic', 'bag', 'surrounding', 'content', 'abruptly', 'dropped', 'large', 'amount', 'material', 'fell', 'onto', 'cone', 'funnel', 'cone', 'fell', 'injured', 'man', 'stood', 'leg', 'pressed', 'body', 'guard', 'scaffold', 'external', 'medical', 'attention', 'verified', 'fracturelevel', 'entrance', 'locomotive', 'workshop', 'welder', 'proceeds', 'inspect', 'mining', 'car', 'identifies', 'car', 'bearing', 'problem', 'informs', 'partner', 'finding', 'decides', 'enter', 'car', 'workshop', 'operates', 'swing', 'arm', 'type', 'mona', 'weight', 'move', 'direction', 'railway', 'towards', 'central', 'moment', 'push', 'rocker', 'weight', 'body', 'right', 'hand', 'come', 'contact', 'rock', 'producing', 'injury', 'described', 'time', 'accident', 'worker', 'wearing', 'safety', 'glove', 'padhandling', 'sample', 'laboratory', 'sleeve', 'employee', 'coat', 'contact', 'nitric', 'acid', 'absorbing', 'small', 'amount', 'came', 'reach', 'left', 'forearm', 'causing', 'degree', 'burnlevel', 'gallery', 'holding', 'activity', 'bolter', 'equipment', 'operator', 'performs', 'drilling', 'first', 'hole', 'support', 'right', 'gable', 'footdeep', 'drill', 'end', 'drill', 'rod', 'break', 'leaving', 'thread', 'inside', 'drilling', 'machine', 'shank', 'operator', 'assistant', 'decide', 'make', 'two', 'empty', 'percussion', 'attempt', 'free', 'thread', 'shank', 'without', 'success', 'third', 'attempt', 'assistant', 'enters', 'corrugated', 'iron', 'central', 'hole', 'rest', 'bar', 'embedded', 'shank', 'generate', 'pressure', 'moment', 'operator', 'activates', 'percussion', 'generates', 'movement', 'shank', 'hit', 'palm', 'victim', 'left', 'hand', 'generating', 'described', 'injury', 'worker', 'wearing', 'safety', 'glove', 'time', 'accident', 'end', 'corrugated', 'iron', 'contact', 'left', 'hand', 'shaped', 'like', 'cane', 'worker', 'time', 'accident', 'positioned', 'roof', 'supported', 'mesh', 'split', 'set', 'hour', 'collaborator', 'warrin', 'welder', 'trying', 'inspect', 'cracking', 'point', 'inlet', 'laminator', 'slip', 'fall', 'level', 'hitting', 'face', 'hand', 'immediately', 'transferred', 'medical', 'service', 'evaluationemployee', 'report', 'draining', 'ammonia', 'used', 'refrigerant', 'container', 'water', 'splash', 'solution', 'drained', 'onto', 'faceeusebio', 'bridge', 'sudden', 'braking', 'several', 'car', 'brake', 'quickly', 'collaborator', 'car', 'failed', 'stop', 'time', 'collided', 'rear', 'car', 'ahead', 'hourtorch', 'cutting', 'activity', 'new', 'evaporator', 'treatment', 'fixing', 'rupture', 'hose', 'near', 'torch', 'pen', 'causing', 'injurytimes', 'mill', 'operator', 'proceeded', 'remove', 'vitaulic', 'flange', 'connecting', 'suction', 'pipe', 'pump', 'housing', 'intention', 'desanding', 'system', 'removing', 'flange', 'mineral', 'pulp', 'come', 'pressure', 'impact', 'face', 'wrist', 'left', 'hand', 'generating', 'lesion', 'described', 'time', 'accident', 'secondary', 'mill', 'pump', 'blocked', 'maintenance', 'work', 'mill', 'operator', 'used', 'safety', 'glasseslevel', 'access', 'area', 'operator', 'scissor', 'team', 'preparing', 'present', 'second', 'mesh', 'continue', 'support', 'work', 'operator', 'pull', 'support', 'mesh', 'share', 'length', 'equally', 'side', 'equipment', 'moment', 'roof', 'work', 'rock', 'weighs', 'approximately', 'fall', 'support', 'mesh', 'slide', 'towards', 'right', 'side', 'spoiler', 'result', 'mesh', 'push', 'operator', 'kneeling', 'floor', 'platform', 'generates', 'lesion', 'described', 'rock', 'falling', 'directly', 'impact', 'operator', 'squatting', 'position', 'operator', 'move', 'away', 'area', 'walking', 'mean', 'supported', 'assistantemployee', 'report', 'upon', 'initiating', 'rlc', 'front', 'loading', 'activity', 'elevation', 'aerial', 'work', 'platform', 'rock', 'fragment', 'roof', 'gallery', 'dropped', 'reaching', 'face', 'causing', 'lesionopened', 'access', 'ladder', 'people', 'carrying', 'truck', 'employee', 'right', 'hand', 'pressed', 'support', 'bracket', 'suffering', 'superficial', 'injuryemployee', 'partner', 'company', 'report', 'cutting', 'watermelon', 'injured', 'chirodactilo', 'left', 'hand', 'knifemincing', 'team', 'carrying', 'activity', 'city', 'juina', 'coordinated', 'mining', 'technician', 'felipe', 'time', 'mining', 'technician', 'last', 'line', 'away', 'team', 'bitten', 'blackjack', 'left', 'side', 'face', 'allergic', 'manifestation', 'team', 'continued', 'work', 'afternoon', 'lunch', 'employee', 'sought', 'medical', 'care', 'medicated', 'released', 'continue', 'activity', 'next', 'daytime', 'worker', 'cleaning', 'long', 'hole', 'production', 'mesh', 'negative', 'removing', 'polyethylene', 'pipe', 'suffers', 'clogging', 'inside', 'drill', 'product', 'compressed', 'air', 'pressure', 'released', 'ejecting', 'detritus', 'fragment', 'rock', 'inside', 'hole', 'impacting', 'worker', 'forehead', 'causing', 'cutremoving', 'cap', 'wear', 'plate', 'warman', 'lxbb', 'pump', 'left', 'hand', 'employee', 'glove', 'slipped', 'came', 'contact', 'cutting', 'part', 'boardwithdrawal', 'fixed', 'jaw', 'wedge', 'crusher', 'hoisting', 'device', 'hook', 'broken', 'causing', 'steel', 'cable', 'overhead', 'crane', 'strike', 'left', 'hand', 'employeeleaving', 'company', 'employee', 'stumbled', 'onto', 'exit', 'ladder', 'building', 'fell', 'step', 'causing', 'twisting', 'ankle', 'grating', 'cinnamonore', 'transport', 'work', 'bine', 'filled', 'tenth', 'mining', 'car', 'ore', 'assistant', 'positioned', 'platform', 'hopper', 'place', 'wooden', 'board', 'piston', 'chain', 'avoid', 'fall', 'fine', 'track', 'time', 'fragment', 'rock', 'cmxcm', 'roll', 'load', 'hit', 'distal', 'phalanx', 'fourth', 'finger', 'left', 'hand', 'assistant', 'time', 'accident', 'wearing', 'safety', 'glove', 'pad', 'type', 'hopper', 'time', 'accident', 'zero', 'energycircumstances', 'drilling', 'assistant', 'proceeded', 'assemble', 'inner', 'tube', 'barel', 'injured', 'person', 'retracts', 'inner', 'tube', 'head', 'throw', 'manually', 'towards', 'top', 'catheter', 'inclination', 'continue', 'perforation', 'moment', 'glove', 'left', 'hand', 'hooked', 'speart', 'point', 'pushing', 'left', 'hand', 'edge', 'box', 'barel', 'originating', 'injury', 'time', 'accident', 'injured', 'employee', 'used', 'rubber', 'glove', 'work', 'area', 'well', 'litemployee', 'nilton', 'made', 'opening', 'visit', 'unclog', 'moment', 'occurred', 'projection', 'hot', 'material', 'occurring', 'accidentmaintaining', 'ramp', 'placing', 'first', 'cloth', 'overlap', 'previous', 'mesh', 'operator', 'check', 'work', 'front', 'return', 'back', 'team', 'coordinate', 'assistant', 'time', 'fragment', 'rock', 'weight', 'nonsustained', 'area', 'detached', 'impact', 'arm', 'team', 'reaching', 'bounce', 'collaborator', 'causing', 'injury', 'one', 'involved', 'made', 'use', 'epps', 'time', 'incident', 'assistant', 'back', 'team', 'preparing', 'support', 'meshlevel', 'access', 'operator', 'scissor', 'performed', 'support', 'crown', 'time', 'piece', 'rock', 'cmxcmxcm', 'pass', 'cocada', 'support', 'mesh', 'height', 'meter', 'towards', 'platform', 'team', 'breaking', 'particle', 'one', 'reach', 'right', 'eye', 'causing', 'injurylevel', 'access', 'operator', 'scissor', 'carried', 'support', 'right', 'gable', 'platform', 'arranged', 'place', 'split', 'set', 'drill', 'squat', 'position', 'introduced', 'bolt', 'moment', 'cocada', 'support', 'mesh', 'fall', 'crown', 'piece', 'rock', 'cmxcmxcm', 'approximate', 'height', 'impacting', 'cervical', 'region', 'collaborator', 'causing', 'lesion', 'described', 'time', 'accident', 'crown', 'held', 'collaborator', 'used', 'safety', 'glass', 'glovesemployee', 'performing', 'cutting', 'activity', 'carbon', 'steel', 'pipe', 'attached', 'band', 'saw', 'machine', 'due', 'uneven', 'weight', 'distribution', 'tube', 'moved', 'downward', 'end', 'projected', 'upwards', 'pressing', 'thumbservant', 'would', 'remove', 'dish', 'bowl', 'sink', 'picking', 'set', 'plate', 'one', 'broken', 'broken', 'edge', 'causing', 'injury', 'chiropactyl', 'right', 'handtimes', 'collaborator', 'performing', 'evacuation', 'inchancables', 'mine', 'present', 'strip', 'phase', 'notice', 'piece', 'support', 'mesh', 'positioned', 'frame', 'return', 'belt', 'several', 'attempt', 'remove', 'mesh', 'belt', 'movement', 'using', 'metal', 'rake', 'support', 'mesh', 'yield', 'moving', 'direction', 'rotation', 'return', 'belt', 'hitting', 'collaborator', 'hand', 'metal', 'structure', 'causing', 'contusion', 'left', 'hand', 'time', 'accident', 'employee', 'used', 'leather', 'glovestopographic', 'survey', 'stp', 'east', 'zone', 'victim', 'coworker', 'decide', 'continue', 'work', 'stp', 'west', 'injured', 'person', 'walk', 'behind', 'coworker', 'meter', 'arriving', 'loading', 'zone', 'intersection', 'rpa', 'injured', 'person', 'asks', 'sccop', 'operator', 'stop', 'pas', 'equipment', 'stopped', 'victim', 'pass', 'behind', 'partner', 'stuck', 'gable', 'trying', 'avoid', 'accumulation', 'water', 'take', 'third', 'step', 'puddle', 'injured', 'person', 'step', 'false', 'fall', 'floor', 'causing', 'injuryemployee', 'report', 'carrying', 'activity', 'area', 'expedition', 'remove', 'overall', 'contact', 'material', 'contaminated', 'sleeve', 'caused', 'degree', 'burn', 'right', 'forearm', 'hour', 'row', 'cell', 'suction', 'partner', 'remove', 'suction', 'hose', 'untimely', 'splash', 'electrolyte', 'solution', 'left', 'eye', 'immediately', 'referred', 'medical', 'serviceexecution', 'area', 'cleaning', 'activity', 'using', 'hoe', 'employee', 'hit', 'fixed', 'metal', 'structure', 'area', 'coming', 'reach', 'abdomen', 'leftcollaborator', 'cleaning', 'sink', 'copper', 'repulping', 'area', 'moment', 'filling', 'truck', 'shovel', 'project', 'sludge', 'towards', 'lens', 'soiling', 'obstructing', 'vision', 'worker', 'indicates', 'removing', 'lens', 'clean', 'mud', 'particle', 'enter', 'left', 'eye', 'causing', 'discomfort', 'referred', 'medical', 'center', 'corresponding', 'attentionclerk', 'cutting', 'excess', 'fiberglass', 'passing', 'box', 'contact', 'blade', 'marble', 'saw', 'cut', 'glove', 'caused', 'wound', 'right', 'handlevel', 'unicon', 'plant', 'collaborator', 'shuttering', 'work', 'concrete', 'water', 'sedimentation', 'basin', 'moment', 'nailing', 'wood', 'supply', 'another', 'inch', 'strip', 'feel', 'metallic', 'hammer', 'loosen', 'wooden', 'handle', 'fix', 'grab', 'hammer', 'head', 'hit', 'handle', 'vertically', 'wood', 'generating', 'injury', 'time', 'accident', 'employee', 'use', 'safety', 'glovessurface', 'dining', 'room', 'employee', 'unit', 'collaborator', 'performed', 'chicken', 'habilitation', 'lunch', 'using', 'kitchen', 'knife', 'come', 'contact', 'distal', 'part', 'second', 'finger', 'left', 'hand', 'causing', 'injury', 'described', 'accident', 'employee', 'use', 'specific', 'height', 'glove', 'type', 'workmaintenance', 'work', 'vertical', 'pump', 'zinc', 'concentrate', 'three', 'mechanic', 'performing', 'lifting', 'maneuver', 'able', 'position', 'pump', 'drawer', 'instant', 'pump', 'becomes', 'clogged', 'reduced', 'space', 'work', 'area', 'order', 'release', 'pump', 'place', 'young', 'lady', 'lower', 'part', 'time', 'released', 'turn', 'untimely', 'hitting', 'middle', 'finger', 'injured', 'person', 'right', 'hand', 'trellex', 'hosesection', 'row', 'cell', 'worker', 'performs', 'anode', 'lifting', 'correct', 'short', 'circuit', 'using', 'auxiliary', 'hoist', 'nylon', 'sling', 'time', 'sling', 'released', 'anode', 'hit', 'back', 'right', 'hand', 'causing', 'injury', 'worker', 'seen', 'medical', 'transferred', 'clinic', 'external', 'evaluationcheck', 'list', 'area', 'survey', 'operator', 'slipped', 'foliage', 'leucenas', 'fellparticipating', 'general', 'held', 'outside', 'area', 'central', 'locker', 'room', 'employee', 'bitten', 'beeemployee', 'report', 'performing', 'maintenance', 'activity', 'pump', 'tunnel', 'pulling', 'rotor', 'struck', 'piece', 'mallet', 'slipped', 'hand', 'reaching', 'lower', 'part', 'left', 'leg', 'causing', 'injurytrying', 'release', 'pipe', 'hdp', 'pipe', 'long', 'diameter', 'stuck', 'support', 'mesh', 'master', 'loader', 'assistant', 'pull', 'pipe', 'release', 'pipe', 'released', 'hit', 'lateral', 'part', 'cheekbone', 'eyelid', 'worker', 'right', 'generating', 'described', 'injurycity', 'conchucos', 'ancash', 'participating', 'patronal', 'feast', 'representing', 'company', 'mounted', 'horse', 'part', 'ceremony', 'throwing', 'fruit', 'toy', 'people', 'attending', 'public', 'event', 'noise', 'material', 'pyrotechnic', 'people', 'trying', 'collect', 'gift', 'caused', 'horse', 'front', 'close', 'horse', 'frightened', 'kicked', 'back', 'hitting', 'lower', 'limbsemployee', 'removing', 'strap', 'chemical', 'container', 'projected', 'toward', 'reaching', 'lower', 'lip', 'anterior', 'chest', 'strap', 'contaminated', 'caustic', 'soda', 'caused', 'degree', 'burncutting', 'vegetation', 'open', 'bite', 'using', 'sickle', 'assistant', 'struck', 'vine', 'twice', 'liana', 'ruptured', 'top', 'branch', 'projected', 'face', 'auxiliary', 'causing', 'cut', 'upper', 'lipseptember', 'approximately', 'preventive', 'maintenance', 'debarking', 'machine', 'bearing', 'assembly', 'made', 'anode', 'cleaning', 'roller', 'fitting', 'bearing', 'final', 'position', 'staff', 'used', 'chisel', 'pound', 'rope', 'position', 'bearing', 'worker', 'place', 'left', 'hand', 'near', 'head', 'chisel', 'warp', 'circumstance', 'splinter', 'embedded', 'proximal', 'part', 'thumb', 'left', 'hand', 'immediately', 'collaborator', 'communicates', 'supervisor', 'evacuated', 'medical', 'reviewemployee', 'report', 'monitoring', 'existence', 'borehole', 'tubing', 'thermal', 'recovery', 'boiler', 'ustulation', 'area', 'side', 'window', 'struck', 'projection', 'heated', 'air', 'reached', 'face', 'right', 'forearmcollaborator', 'around', 'cleaning', 'leaf', 'return', 'well', 'borehole', 'brapdd', 'slipped', 'canvas', 'edge', 'well', 'hitting', 'right', 'side', 'back', 'metal', 'structure', 'mudswathed', 'box', 'causing', 'slight', 'excoriation', 'employee', 'referred', 'local', 'hospital', 'medicated', 'released', 'activitiesemployee', 'performing', 'maintenance', 'blower', 'residual', 'water', 'projection', 'occurred', 'face', 'attempt', 'remove', 'ppe', 'injured', 'person', 'contact', 'contaminated', 'glove', 'right', 'eye', 'causing', 'irritationlubricating', 'technician', 'alfredo', 'made', 'oil', 'filling', 'reducer', 'notice', 'oil', 'leak', 'tearing', 'connection', 'hose', 'reducer', 'correcting', 'leak', 'work', 'finished', 'lubricant', 'workshop', 'remove', 'glove', 'observes', 'hand', 'affected', 'contact', 'hot', 'surface', 'medical', 'center', 'treatedmaintenance', 'access', 'moment', 'assistant', 'place', 'mini', 'split', 'set', 'adapter', 'clamp', 'locked', 'return', 'initial', 'position', 'hitting', 'collaborator', 'hand', 'causing', 'described', 'injury', 'time', 'accident', 'team', 'sustained', 'area', 'arm', 'jumbo', 'height', 'floor', 'employee', 'wearing', 'rubber', 'glovesemployee', 'preparing', 'rice', 'using', 'utensil', 'type', 'skimmer', 'stir', 'inside', 'pressure', 'cooker', 'part', 'cable', 'broke', 'reaching', 'hand', 'causing', 'blunt', 'cutcircumstances', 'operator', 'bolter', 'went', 'ladder', 'height', 'resting', 'platform', 'floor', 'level', 'slip', 'balance', 'hitting', 'back', 'handrail', 'operator', 'door', 'time', 'event', 'injured', 'person', 'used', 'eppstechnician', 'operator', 'heading', 'towards', 'zone', 'lifting', 'container', 'dust', 'zinc', 'section', 'space', 'base', 'tranquera', 'sardinel', 'slipping', 'edge', 'raspandose', 'left', 'side', 'thorax', 'treated', 'medical', 'center', 'local', 'treatment', 'returning', 'work', 'area', 'september', 'worker', 'confipetrol', 'carried', 'industrial', 'cleaning', 'outside', 'acid', 'reduction', 'tank', 'check', 'progress', 'helmet', 'mask', 'moment', 'hose', 'pipe', 'released', 'secured', 'pressure', 'clamp', 'water', 'air', 'impacting', 'lip', 'approximately', 'marco', 'isidro', 'torres', 'performing', 'pipe', 'standardization', 'moment', 'marco', 'lift', 'air', 'pipe', 'spike', 'seat', 'pipe', 'impact', 'worker', 'safety', 'guard', 'approximately', 'mechanic', 'removing', 'last', 'bolt', 'nipple', 'pump', 'lime', 'feeder', 'reactive', 'area', 'mechanic', 'positioned', 'slightly', 'flexing', 'leg', 'performs', 'upward', 'force', 'hand', 'moment', 'feel', 'pain', 'spume', 'right', 'thigh', 'mechanic', 'evacuated', 'help', 'colleague', 'medical', 'post', 'approximately', 'maintenance', 'workshop', 'unicon', 'circumstance', 'two', 'mechanical', 'technician', 'placed', 'protective', 'plate', 'mixkret', 'fuel', 'tank', 'moment', 'attempting', 'bolt', 'protective', 'plate', 'slip', 'hand', 'one', 'falling', 'directly', 'instep', 'left', 'foot', 'causing', 'injury', 'described', 'mixkret', 'operator', 'washing', 'mixkret', 'hose', 'water', 'pressure', 'necessary', 'change', 'location', 'right', 'side', 'left', 'proceeds', 'pull', 'hose', 'slip', 'feel', 'left', 'foot', 'bendscarrying', 'supply', 'operation', 'zinc', 'powder', 'container', 'using', 'crane', 'move', 'employee', 'closed', 'lower', 'lock', 'container', 'making', 'movement', 'push', 'lock', 'made', 'excessive', 'effort', 'thumb', 'right', 'hand', 'causing', 'sprainwithdrawal', 'cathode', 'sample', 'employee', 'came', 'press', 'finger', 'tool', 'cut', 'sampleintersection', 'level', 'main', 'road', 'access', 'south', 'ramp', 'collaborator', 'freed', 'tube', 'inch', 'diameter', 'gable', 'descended', 'holding', 'pipe', 'fourth', 'step', 'telescopic', 'aluminum', 'ladder', 'approximately', 'meter', 'floor', 'point', 'another', 'clamping', 'point', 'gable', 'lifted', 'lifting', 'tube', 'pull', 'worker', 'causing', 'lose', 'balance', 'fall', 'height', 'meter', 'described', 'injury', 'occurringprobe', 'bore', 'bapdd', 'around', 'hour', 'polling', 'assistant', 'luciano', 'silva', 'performing', 'maneuver', 'descending', 'rod', 'led', 'rod', 'gutter', 'leaning', 'suitably', 'came', 'escape', 'gutter', 'returning', 'toward', 'easel', 'hand', 'slipped', 'little', 'finger', 'rod', 'easel', 'realizing', 'shaft', 'returned', 'released', 'immediately', 'little', 'finger', 'partially', 'hit', 'rim', 'rod', 'easel', 'resulting', 'cut', 'auxiliary', 'taken', 'hospital', 'attended', 'wound', 'resulted', 'point', 'released', 'administrative', 'activitiesoffices', 'incimmet', 'circumstance', 'environment', 'set', 'place', 'cleaning', 'material', 'wooden', 'strip', 'placed', 'staircase', 'structure', 'container', 'strip', 'cut', 'size', 'accident', 'victim', 'coordinated', 'partner', 'put', 'pressure', 'using', 'hammer', 'holding', 'right', 'hand', 'frame', 'pressure', 'placed', 'strip', 'pushed', 'side', 'container', 'creating', 'opening', 'corrugated', 'iron', 'wall', 'time', 'continuing', 'hit', 'ribbon', 'fall', 'causing', 'wall', 'container', 'return', 'initial', 'position', 'pressing', 'tip', 'little', 'finger', 'right', 'hand', 'corrugated', 'iron', 'causing', 'accidentarea', 'equipment', 'inspection', 'staff', 'atenuz', 'trying', 'remove', 'hydraulic', 'hammer', 'safety', 'lock', 'excavator', 'mechanical', 'lubricator', 'hold', 'right', 'hand', 'hattype', 'chisel', 'equipment', 'mechanic', 'hit', 'chisel', 'pound', 'rubber', 'bump', 'remove', 'safety', 'point', 'one', 'blow', 'fall', 'edge', 'hattype', 'protector', 'causing', 'slip', 'strike', 'fourth', 'finger', 'lubricant', 'mechanic', 'right', 'hand', 'generating', 'described', 'injury', 'time', 'accident', 'lubricator', 'mechanic', 'put', 'glove', 'type', 'padapprox', 'eliseo', 'secondary', 'crushing', 'operator', 'retiring', 'snack', 'find', 'gate', 'chute', 'strip', 'open', 'approaching', 'close', 'gate', 'moment', 'operator', 'samuel', 'upper', 'platform', 'coordinate', 'operator', 'control', 'room', 'start', 'strip', 'moment', 'startup', 'product', 'project', 'particle', 'xxcm', 'impacting', 'flange', 'gate', 'projecting', 'towards', 'height', 'lens', 'respirator', 'eliseoemployee', 'cleaning', 'near', 'area', 'pneumatic', 'conveyor', 'hit', 'drop', 'sulfuric', 'acid', 'upper', 'lipemployee', 'assisted', 'support', 'gate', 'tying', 'canvas', 'frame', 'pressing', 'rope', 'canvas', 'stretched', 'metal', 'structure', 'moved', 'coming', 'wooden', 'support', 'falling', 'striking', 'employee', 'face', 'causing', 'cut', 'right', 'superciliaryphase', 'operator', 'carried', 'removal', 'inchancanbles', 'reciprocating', 'feeder', 'removing', 'split', 'set', 'support', 'rope', 'staff', 'support', 'left', 'hand', 'structure', 'protection', 'falling', 'moment', 'another', 'split', 'set', 'come', 'together', 'load', 'hit', 'distal', 'phalanx', 'fifth', 'finger', 'left', 'hand', 'generating', 'described', 'injurycircumstances', 'assistant', 'mine', 'arranging', 'advance', 'hose', 'flexible', 'nylon', 'diameter', 'proceed', 'watered', 'shot', 'fired', 'positioning', 'zone', 'support', 'deteriorated', 'last', 'blasting', 'moment', 'give', 'block', 'rock', 'cmxcmxcm', 'roof', 'work', 'height', 'meter', 'falling', 'hit', 'rebound', 'left', 'leg', 'collaborator', 'causing', 'described', 'injuryinside', 'mine', 'diamond', 'drilling', 'positive', 'drill', 'moment', 'control', 'tube', 'rescued', 'fisherman', 'winch', 'cable', 'break', 'untimely', 'developing', 'whiplash', 'effect', 'impacting', 'left', 'hand', 'drilling', 'assistant', 'causing', 'described', 'injury', 'time', 'accident', 'drilling', 'assistant', 'platform', 'frame', 'using', 'hycrontype', 'safety', 'glovesemployee', 'cleaned', 'thermal', 'recovery', 'boiler', 'using', 'air', 'boom', 'hose', 'loosened', 'pipe', 'connection', 'drawing', 'jet', 'compressed', 'air', 'toward', 'right', 'ear', 'causing', 'impact', 'noiseactivity', 'loading', 'explosive', 'front', 'level', 'gts', 'fall', 'rock', 'fragment', 'reaching', 'right', 'arm', 'blaster', 'causing', 'cutbluntcircumstances', 'mechanical', 'technician', 'work', 'colleague', 'arranged', 'accommodate', 'spare', 'rollover', 'small', 'platform', 'cart', 'floor', 'two', 'squat', 'collaborator', 'decide', 'push', 'one', 'side', 'time', 'one', 'edge', 'rollover', 'imprisons', 'third', 'finger', 'left', 'hand', 'handle', 'cart', 'right', 'side', 'causing', 'wound', 'third', 'finger', 'left', 'hand', 'time', 'accident', 'employee', 'used', 'respective', 'glovesore', 'loading', 'locomotive', 'completed', 'penultimate', 'car', 'derails', 'car', 'presence', 'fragment', 'rock', 'railway', 'line', 'weight', 'car', 'mineral', 'ton', 'get', 'back', 'track', 'mining', 'car', 'victim', 'make', 'use', 'metal', 'tube', 'length', 'meter', 'diameter', 'maneuver', 'reposition', 'mining', 'car', 'moment', 'metallic', 'tube', 'loses', 'stability', 'imprisons', 'victim', 'hand', 'strut', 'mining', 'car', 'collaborator', 'time', 'event', 'towards', 'use', 'leather', 'glovestime', 'heavy', 'equipment', 'operator', 'got', 'equipment', 'check', 'right', 'front', 'headlight', 'defective', 'scooptram', 'position', 'rim', 'position', 'left', 'leg', 'slide', 'causing', 'heavy', 'equipment', 'operator', 'fall', 'height', 'cmalimak', 'chimney', 'level', 'alimakero', 'driller', 'assistant', 'positioned', 'main', 'cage', 'guard', 'head', 'proceed', 'perform', 'rock', 'untie', 'top', 'chimney', 'time', 'teacher', 'perceives', 'spark', 'rock', 'top', 'communicates', 'assistant', 'prevented', 'falling', 'rock', 'guard', 'head', 'fragmented', 'one', 'fragment', 'fall', 'chain', 'rebound', 'rub', 'operator', 'right', 'hand', 'generating', 'described', 'injuryactivity', 'placing', 'board', 'rack', 'exchange', 'fabric', 'filter', 'one', 'plate', 'inclined', 'trying', 'put', 'plate', 'correct', 'position', 'plate', 'arm', 'pressed', 'back', 'right', 'hand', 'structure', 'easelobserving', 'pulp', 'overflow', 'overflow', 'reception', 'drawer', 'thickener', 'filter', 'operator', 'approach', 'verify', 'operation', 'pump', 'making', 'sure', 'stopped', 'press', 'keypad', 'start', 'pump', 'getting', 'start', 'proceeds', 'remove', 'guard', 'manipulates', 'motor', 'pump', 'transmission', 'strip', 'left', 'hand', 'imprisoned', 'pulley', 'motor', 'transmission', 'beltmr', 'eriks', 'completed', 'change', 'guide', 'pole', 'conveyor', 'belt', 'collaborator', 'moved', 'side', 'belt', 'remove', 'tecl', 'pass', 'stair', 'without', 'getting', 'observe', 'moment', 'collaborator', 'jhon', 'dropped', 'inchancable', 'weight', 'approx', 'entrance', 'platform', 'chute', 'discharge', 'height', 'meter', 'iron', 'grazed', 'forearm', 'finally', 'hitting', 'left', 'foot', 'height', 'instepigniting', 'furnace', 'battery', 'reflux', 'hot', 'gas', 'reaching', 'face', 'employeeapproximately', 'wilmer', 'approach', 'drying', 'tower', 'placement', 'blanket', 'cover', 'entrance', 'manhole', 'tower', 'moment', 'manhole', 'cover', 'resting', 'railing', 'slide', 'impacting', 'right', 'leg', 'cathode', 'pre', 'estriping', 'sheet', 'detached', 'bend', 'cathode', 'position', 'operator', 'assistant', 'lift', 'cathode', 'head', 'position', 'tranfer', 'moment', 'detached', 'sheet', 'exerts', 'pressure', 'cathode', 'hitting', 'palm', 'left', 'hand', 'operator', 'head', 'transfe', 'activity', 'paralyzed', 'collaborator', 'referred', 'medical', 'post', 'head', 'guardworkers', 'cesar', 'injured', 'nilton', 'receive', 'order', 'immediate', 'supervisor', 'roman', 'carry', 'assembly', 'activity', 'brace', 'length', 'approximate', 'weight', 'structure', 'nro', 'belt', 'said', 'collaborator', 'lift', 'brace', 'approach', 'installation', 'point', 'leaving', 'one', 'end', 'ground', 'resting', 'corner', 'pedestal', 'approximate', 'height', 'carrying', 'planning', 'work', 'injured', 'person', 'lift', 'end', 'part', 'floor', 'turn', 'position', 'assembly', 'moment', 'end', 'fall', 'generating', 'imprisonment', 'finger', 'left', 'hand', 'staff', 'taken', 'medical', 'center', 'supervisorregion', 'povoado', 'vista', 'martinopole', 'employee', 'fabio', 'vieira', 'performed', 'soil', 'collection', 'activity', 'field', 'together', 'auxiliary', 'manoel', 'silva', 'diassis', 'nascimento', 'around', 'crossing', 'fence', 'glove', 'attached', 'wire', 'body', 'projected', 'forward', 'causing', 'slight', 'twist', 'left', 'wrist', 'team', 'traveled', 'city', 'granja', 'employee', 'referred', 'hospital', 'consultation', 'doctor', 'diagnose', 'fracture', 'prescribing', 'remedy', 'local', 'pain', 'ice', 'pack', 'medical', 'evaluation', 'employee', 'carry', 'activity', 'normallyoperator', 'descending', 'ladder', 'sailor', 'step', 'fall', 'floor', 'going', 'step', 'falling', 'back', 'hitting', 'head', 'worker', 'used', 'chin', 'strap', 'helmet', 'safety', 'element', 'reduced', 'injury', 'blow', 'treated', 'medical', 'center', 'local', 'treatment', 'referred', 'clinic', 'reevaluationapprox', 'denis', 'made', 'mesh', 'placed', 'ventilation', 'plug', 'ladder', 'trying', 'wire', 'tie', 'suddenly', 'imbalance', 'due', 'manipulation', 'tool', 'falling', 'third', 'step', 'propiciandose', 'blow', 'right', 'knee', 'wound', 'wrist', 'right', 'hand', 'later', 'evacuated', 'post', 'received', 'first', 'aidemployee', 'report', 'upon', 'initiating', 'rlc', 'front', 'loading', 'activity', 'performing', 'emulsion', 'preparation', 'use', 'displacement', 'small', 'rock', 'fragment', 'ceiling', 'reaching', 'left', 'forearmlevel', 'dining', 'room', 'collaborator', 'finished', 'washing', 'tabolas', 'food', 'container', 'dimension', 'proceed', 'order', 'pinking', 'thumb', 'right', 'hand', 'corner', 'aluminum', 'tabola', 'generating', 'lesion', 'employee', 'time', 'accident', 'safety', 'glovesexchange', 'shockbearing', 'housing', 'employee', 'used', 'sledgehammer', 'hit', 'pipe', 'stage', 'activity', 'hammer', 'hit', 'stepladder', 'close', 'coming', 'hand', 'tool', 'projected', 'onto', 'left', 'hand', 'thumb', 'holding', 'piecewelder', 'completed', 'welding', 'work', 'reinforce', 'form', 'deepening', 'walked', 'towards', 'distant', 'truck', 'point', 'welder', 'stepped', 'fragment', 'rock', 'approx', 'generates', 'foot', 'flex', 'generates', 'injury', 'workeractivity', 'chuteo', 'ore', 'hopper', 'operator', 'locomotive', 'park', 'equipment', 'hopper', 'fill', 'first', 'car', 'moment', 'blowing', 'release', 'load', 'mud', 'flow', 'suddenly', 'appears', 'presence', 'rock', 'fragment', 'personnel', 'direction', 'flow', 'covered', 'mudtimes', 'four', 'mechanic', 'performed', 'removal', 'engine', 'positive', 'slope', 'using', 'key', 'tyrfor', 'time', 'welder', 'tightened', 'key', 'weight', 'pulling', 'chain', 'eyebolt', 'held', 'click', 'roof', 'work', 'broken', 'transversely', 'causing', 'fall', 'key', 'hitting', 'helmet', 'welder', 'mechanic', 'causing', 'cervical', 'contracture', 'tirfor', 'used', 'activity', 'second', 'protection', 'prevent', 'engine', 'fallingtimes', 'four', 'employee', 'lowered', 'metal', 'sheet', 'mxm', 'towards', 'floor', 'height', 'assembly', 'assistant', 'timely', 'remove', 'hand', 'trapping', 'ring', 'finger', 'iron', 'loose', 'earth', 'causing', 'contusion', 'ring', 'finger', 'collaborator', 'time', 'event', 'use', 'maneuver', 'gloveswithdrawal', 'metal', 'form', 'support', 'screw', 'inside', 'well', 'bolt', 'chain', 'holder', 'loosened', 'employee', 'helper', 'exerted', 'force', 'combination', 'wrench', 'bolt', 'came', 'loosen', 'immediately', 'pressing', 'ring', 'finger', 'employee', 'right', 'hand', 'support', 'hour', 'moment', 'claudio', 'tipper', 'operator', 'readjusted', 'nut', 'rear', 'tire', 'right', 'side', 'vehicle', 'using', 'wheel', 'wrench', 'tube', 'extension', 'generate', 'greater', 'force', 'torque', 'wilber', 'held', 'back', 'suffers', 'contusion', 'palm', 'right', 'hand', 'extension', 'partner', 'slip', 'handsentering', 'caustic', 'soda', 'containment', 'basin', 'place', 'hose', 'make', 'suction', 'stage', 'steam', 'formation', 'striking', 'employee', 'right', 'left', 'calfactivities', 'revegetation', 'slope', 'pit', 'pit', 'employee', 'hitting', 'sledgehammer', 'rod', 'installation', 'lifeline', 'hit', 'right', 'leg', 'causing', 'slight', 'excoriationperforming', 'doosan', 'equipment', 'hammer', 'repair', 'employee', 'try', 'remove', 'suspender', 'support', 'pound', 'rope', 'moment', 'receiving', 'blow', 'brace', 'bolt', 'cause', 'splinter', 'released', 'expelling', 'impacting', 'lower', 'left', 'limb', 'causing', 'metal', 'embedding', 'collaborator', 'notice', 'immediatelyemployee', 'report', 'performed', 'activity', 'area', 'ustulacion', 'coordination', 'maintenance', 'hit', 'dust', 'ustulado', 'causing', 'irritation', 'eye', 'regiondecember', 'accessory', 'coupling', 'gun', 'hose', 'high', 'pressure', 'pump', 'bap', 'made', 'clean', 'demister', 'cooling', 'tower', 'carrying', 'complete', 'coupling', 'turn', 'bap', 'start', 'start', 'test', 'moment', 'hose', 'come', 'gun', 'hit', 'emerson', 'holding', 'gunemployee', 'report', 'returning', 'anode', 'easel', 'even', 'bumped', 'side', 'easel', 'coming', 'swing', 'hit', 'right', 'shoulder', 'causing', 'bruisehappened', 'maintenance', 'bolter', 'equipment', 'collaborator', 'carpenter', 'hammer', 'able', 'remove', 'link', 'chain', 'advance', 'drilling', 'machine', 'moment', 'hit', 'side', 'chain', 'partner', 'hit', 'structure', 'beam', 'diverting', 'path', 'hammer', 'causing', 'strike', 'left', 'handmaid', 'walking', 'electrolysis', 'area', 'stumbled', 'fell', 'next', 'bathroom', 'room', 'bcircumstances', 'operator', 'performed', 'lifting', 'inch', 'vitaulic', 'pipe', 'imprisoned', 'structure', 'railing', 'truck', 'instant', 'push', 'pipe', 'right', 'hand', 'return', 'initial', 'position', 'hitting', 'middle', 'finger', 'employee', 'causing', 'bruiseperforming', 'movement', 'bar', 'make', 'room', 'place', 'calibrator', 'chuquillanqui', 'push', 'bar', 'hand', 'turning', 'moment', 'imprisoned', 'middle', 'finger', 'left', 'hand', 'bar', 'aheademployee', 'report', 'performed', 'soldering', 'activity', 'hit', 'eye', 'region', 'dust', 'found', 'thermal', 'insulation', 'causing', 'irritationend', 'unleashing', 'saturated', 'material', 'talus', 'crest', 'bank', 'rugged', 'taut', 'rope', 'leave', 'work', 'area', 'tension', 'moment', 'loose', 'material', 'top', 'slope', 'crumbles', 'height', 'stool', 'projecting', 'fragment', 'cmxcmxcm', 'rub', 'right', 'cheek', 'causing', 'injury', 'time', 'event', 'area', 'isolated', 'collaborator', 'epps', 'corresponding', 'activitylevel', 'geology', 'surface', 'master', 'mine', 'temporarily', 'repair', 'water', 'leakage', 'inch', 'diameter', 'metal', 'distributor', 'make', 'cut', 'rim', 'chamber', 'strip', 'wide', 'long', 'making', 'using', 'cutter', 'partner', 'stretch', 'camera', 'cutting', 'force', 'edge', 'cutter', 'make', 'contact', 'index', 'finger', 'left', 'hand', 'causing', 'superficial', 'cut', 'time', 'event', 'worker', 'wearing', 'bos', 'glovesmr', 'marcelo', 'withdrew', 'foam', 'ajax', 'oven', 'using', 'metal', 'spoon', 'empty', 'foam', 'waste', 'container', 'moment', 'splash', 'slag', 'residue', 'impacting', 'face', 'generating', 'surface', 'burn', 'worker', 'wearing', 'face', 'maskemployee', 'report', 'trying', 'remove', 'one', 'plate', 'overflow', 'system', 'ustulador', 'oven', 'finger', 'right', 'hand', 'pressed', 'tool', 'wrench', 'extension', 'overflow', 'flange', 'ustulador', 'oven', 'located', 'behind', 'performer', 'hour', 'hidalgo', 'wanting', 'climb', 'starter', 'board', 'remove', 'fan', 'stand', 'unstable', 'reel', 'driving', 'fell', 'frontally', 'height', 'mapproximately', 'alpha', 'operator', 'ronald', 'heading', 'mine', 'decides', 'stop', 'equipment', 'accommodate', 'light', 'left', 'side', 'manipulating', 'support', 'lighthouse', 'catching', 'fifth', 'finger', 'right', 'hand', 'protection', 'grid', 'support', 'hour', 'jose', 'performed', 'erasing', 'earthenware', 'section', 'turning', 'machine', 'alizado', 'ironing', 'concrete', 'tour', 'abruptly', 'imprisoning', 'left', 'hand', 'command', 'equipment', 'metal', 'structure', 'causing', 'atriction', 'back', 'left', 'handvolvo', 'workshop', 'time', 'cutting', 'steel', 'plate', 'thickness', 'installation', 'scoop', 'lip', 'oxicorte', 'equipment', 'injured', 'feel', 'discomfort', 'eye', 'time', 'accident', 'collaborator', 'made', 'use', 'full', 'epp', 'soldering', 'iron', 'lens', 'make', 'full', 'adjustment', 'presence', 'respiratormechanized', 'support', 'activity', 'level', 'tajo', 'lifting', 'support', 'mesh', 'platform', 'scissor', 'equipment', 'employee', 'stumble', 'feel', 'pain', 'heel', 'left', 'footpreparation', 'scaffolding', 'activity', 'employee', 'loading', 'piece', 'designated', 'place', 'finger', 'pressed', 'metal', 'piece', 'movedmaking', 'change', 'support', 'vertical', 'pump', 'zinc', 'two', 'mechanic', 'raised', 'beam', 'one', 'end', 'height', 'injured', 'person', 'knee', 'slip', 'hand', 'causing', 'injury', 'described', 'deslaminator', 'stop', 'untimely', 'operator', 'lower', 'lock', 'machine', 'verify', 'failure', 'detecting', 'locking', 'sheet', 'basket', 'manipulator', 'operator', 'try', 'arrange', 'sheet', 'manually', 'pulling', 'sheet', 'one', 'cut', 'palm', 'right', 'hand', 'edge', 'sheet', 'referred', 'medical', 'center', 'attentionemployee', 'performed', 'withdrawal', 'electrical', 'failure', 'engine', 'control', 'drawer', 'check', 'exchange', 'fuse', 'closed', 'door', 'drawer', 'energized', 'drawer', 'moment', 'arc', 'opened', 'reaching', 'face', 'part', 'employee', 'forearm', 'causing', 'minor', 'burnscircumstances', 'worker', 'hit', 'support', 'drill', 'beam', 'advance', 'cylinder', 'align', 'base', 'beam', 'hole', 'beam', 'place', 'bolt', 'mechanical', 'hammer', 'slip', 'inertia', 'mechanic', 'hand', 'hit', 'edge', 'beam', 'causing', 'injury', 'time', 'accident', 'employee', 'ppe', 'activitylevel', 'access', 'scissor', 'performed', 'sustaining', 'activity', 'drilling', 'drill', 'install', 'split', 'lifting', 'electrowelded', 'mesh', 'square', 'meter', 'weight', 'approximately', 'team', 'platform', 'assistant', 'slip', 'feel', 'pain', 'inner', 'edge', 'right', 'kneeauxiliary', 'general', 'service', 'paulo', 'silva', 'month', 'day', 'work', 'performing', 'activity', 'soil', 'collection', 'movement', 'equipment', 'next', 'point', 'holding', 'lever', 'encountered', 'piece', 'sloping', 'ground', 'interlaced', 'vegetation', 'caused', 'fall', 'left', 'side', 'tool', 'held', 'rapid', 'fall', 'prevented', 'employee', 'leaning', 'causing', 'shock', 'elbow', 'ground', 'employee', 'continued', 'activity', 'another', 'point', 'sample', 'collection', 'felt', 'arm', 'botheringreduction', 'activity', 'tube', 'employee', 'attached', 'tube', 'walrus', 'hit', 'tube', 'hammer', 'untied', 'walrus', 'reaching', 'fingeractivity', 'settling', 'concrete', 'block', 'ventilation', 'plug', 'wall', 'level', 'circumstance', 'worker', 'made', 'setting', 'union', 'concrete', 'block', 'polyethylene', 'pipe', 'diameter', 'pick', 'spike', 'hit', 'hit', 'top', 'worker', 'protectorlevel', 'tajo', 'area', 'completing', 'drilling', 'drill', 'loading', 'operator', 'remove', 'bit', 'jumbo', 'arm', 'walk', 'towards', 'crew', 'cabin', 'crown', 'work', 'fragment', 'rock', 'pass', 'cocada', 'mesh', 'impact', 'helmet', 'rebound', 'hit', 'right', 'shoulder', 'operator', 'generating', 'described', 'injuryupon', 'approaching', 'furnace', 'process', 'melting', 'ingot', 'struck', 'liquid', 'metal', 'projectionroutine', 'slimming', 'activity', 'kiln', 'battery', 'employee', 'began', 'remove', 'waste', 'inside', 'crucible', 'aid', 'skimmer', 'felt', 'pain', 'left', 'shoulder', 'hour', 'cesar', 'tellomoinsac', 'carrying', 'work', 'assembling', 'water', 'line', 'climb', 'cat', 'ladder', 'approximate', 'height', 'meter', 'vanishes', 'fall', 'hitting', 'way', 'transferred', 'medical', 'center', 'attentionmanipulating', 'material', 'master', 'drill', 'truck', 'operator', 'decide', 'make', 'space', 'moving', 'radiator', 'moment', 'driver', 'truck', 'imprisoned', 'little', 'finger', 'left', 'hand', 'baremployees', 'engaged', 'removal', 'material', 'excavation', 'well', 'level', 'using', 'shovel', 'placing', 'bucket', 'day', 'material', 'fell', 'pipe', 'employee', 'boot', 'friction', 'boot', 'calf', 'caused', 'superficial', 'injury', 'leg', 'block', 'moment', 'messrs', 'roger', 'injured', 'cleaned', 'drill', 'radial', 'mesh', 'inclined', 'shape', 'right', 'gable', 'moment', 'detaches', 'fragment', 'rock', 'impacting', 'shoulderemployee', 'transiting', 'grs', 'area', 'came', 'slip', 'suffering', 'twist', 'left', 'knee', 'activity', 'collecting', 'soil', 'collaborator', 'milton', 'ran', 'branch', 'attacked', 'maribondos', 'bitten', 'twice', 'head', 'pain', 'swelling', 'allergic', 'symptom', 'continued', 'activitiesprocess', 'loading', 'drill', 'carmen', 'pit', 'level', 'operator', 'position', 'basket', 'anfo', 'loader', 'equipment', 'height', 'floor', 'carry', 'loading', 'production', 'drill', 'moment', 'stone', 'slab', 'detached', 'front', 'pit', 'tilted', 'lodged', 'inside', 'basket', 'trapping', 'right', 'leg', 'collaborator', 'time', 'collaborator', 'passing', 'tubo', 'pvc', 'pipe', 'loader', 'uncover', 'fifth', 'hole', 'obstructed', 'piece', 'rock', 'operator', 'jetanol', 'accidentally', 'activates', 'air', 'valve', 'causing', 'loading', 'pipe', 'floor', 'rise', 'suddenly', 'throwing', 'prils', 'anfo', 'excess', 'pipe', 'cheekbone', 'eyelid', 'right', 'eye', 'victimcircumstances', 'tipper', 'mceisa', 'moved', 'operator', 'see', 'congestion', 'equipment', 'front', 'unit', 'ramp', 'distance', 'meter', 'access', 'decides', 'get', 'cab', 'turning', 'vehicle', 'suddenly', 'slide', 'second', 'rung', 'ground', 'hitting', 'right', 'forearm', 'region', 'fender', 'rungmoment', 'entering', 'mouth', 'tunel', 'employee', 'move', 'left', 'side', 'locomotive', 'locomotive', 'personnel', 'transfer', 'stationed', 'entrance', 'mouth', 'without', 'noticing', 'protruding', 'abutment', 'said', 'locomotive', 'bottom', 'hitting', 'right', 'knee', 'metal', 'stirrup', 'noted', 'operator', 'continued', 'duty', 'watch', 'without', 'reporting', 'happened', 'extraction', 'supervisor', 'upon', 'noticing', 'discomfort', 'partner', 'knee', 'immediately', 'evacuated', 'natclar', 'reporting', 'control', 'centerassembly', 'activity', 'polypropylene', 'pipe', 'diameter', 'employee', 'stepped', 'pipe', 'flange', 'twisted', 'right', 'footupon', 'entering', 'mine', 'interior', 'bodeguero', 'located', 'litorina', 'last', 'convoy', 'displacement', 'litorina', 'derails', 'advance', 'approximately', 'meter', 'operator', 'observes', 'event', 'entering', 'entrance', 'gate', 'paralyzes', 'displacement', 'convoy', 'winemaker', 'full', 'epps', 'performing', 'soil', 'activity', 'collaborator', 'alex', 'used', 'pickaxe', 'assist', 'opening', 'collection', 'hole', 'struck', 'ferranta', 'ground', 'fragment', 'rock', 'projected', 'forehead', 'causing', 'small', 'cut', 'activity', 'paralyzed', 'moment', 'necessary', 'doctor', 'employee', 'continued', 'activity', 'normallyemployee', 'performing', 'drilling', 'activity', 'probe', 'level', 'gps', 'positioning', 'needle', 'stem', 'came', 'hit', 'left', 'hand', 'ring', 'finger', 'retraction', 'box', 'causing', 'superficial', 'injury', 'performing', 'geological', 'mapping', 'activity', 'geologist', 'manoel', 'silva', 'accompanied', 'geologist', 'luciano', 'santos', 'dayme', 'make', 'crossing', 'side', 'fence', 'barbed', 'wire', 'known', 'region', 'goat', 'fence', 'base', 'height', 'made', 'rod', 'interlaced', 'horizontally', 'upwards', 'made', 'little', 'barbed', 'wire', 'barbed', 'around', 'jumped', 'fence', 'still', 'fence', 'managed', 'sweep', 'vegetation', 'left', 'foot', 'even', 'supporting', 'foot', 'ground', 'stump', 'approximately', 'came', 'break', 'sole', 'boot', 'cause', 'perforation', 'left', 'foot', 'height', 'fingerscollaborator', 'completed', 'misalignment', 'nut', 'left', 'side', 'chute', 'scraper', 'strip', 'get', 'turn', 'hit', 'head', 'guard', 'railing', 'hitting', 'lens', 'generating', 'injurylevel', 'worker', 'performed', 'chuteo', 'ore', 'hopper', 'second', 'car', 'perceived', 'slip', 'water', 'mud', 'hopper', 'decided', 'leave', 'platform', 'already', 'second', 'rung', 'ladder', 'access', 'water', 'increase', 'fragment', 'rock', 'slide', 'hit', 'back', 'worker', 'causing', 'fall', 'hit', 'right', 'forearm', 'left', 'knee', 'hour', 'approximately', 'circumstance', 'administrative', 'ssomac', 'arranged', 'move', 'guillotine', 'right', 'side', 'towards', 'center', 'table', 'make', 'cut', 'enmicadas', 'page', 'trying', 'raise', 'guillotine', 'middle', 'finger', 'right', 'hand', 'rub', 'edge', 'guillotine', 'blade', 'causing', 'cut', 'yolk', 'third', 'finger', 'right', 'handpreparation', 'office', 'cleaning', 'activity', 'employee', 'made', 'use', 'stair', 'railing', 'contact', 'clamp', 'used', 'lock', 'signaling', 'boardactivity', 'packaging', 'cylindrical', 'piece', 'easel', 'employee', 'carried', 'piece', 'designated', 'place', 'finger', 'pressed', 'metal', 'piece', 'movedinjured', 'collaborator', 'one', 'colleague', 'wanted', 'move', 'rim', 'scoop', 'tire', 'using', 'strength', 'threw', 'rim', 'floor', 'make', 'roll', 'instant', 'eyelash', 'hit', 'fifth', 'finger', 'right', 'hand', 'ring', 'producing', 'injuryaveraging', 'operator', 'daniel', 'removed', 'cleaning', 'accessory', 'mobile', 'channel', 'line', 'supported', 'left', 'hand', 'rail', 'motion', 'moment', 'crushing', 'finger', 'left', 'hand', 'occurs', 'injury', 'occurs', 'collaborator', 'referred', 'medical', 'carespillway', 'circumstance', 'worker', 'cleaning', 'use', 'absorbent', 'cloth', 'oil', 'residue', 'right', 'edge', 'atlas', 'compressor', 'bonnet', 'open', 'functioning', 'rag', 'fall', 'inside', 'ompressor', 'attempt', 'remove', 'hooked', 'fan', 'propeller', 'pulling', 'worker', 'left', 'hand', 'toward', 'propeller', 'causing', 'injuryperforming', 'carpentry', 'work', 'collaborator', 'hit', 'second', 'finger', 'left', 'hand', 'hammer', 'held', 'right', 'hand', 'causing', 'bruise', 'height', 'nail', 'evaluation', 'carried', 'medical', 'center', 'unit', 'final', 'diagnosis', 'contusion', 'fingerpreparing', 'mount', 'polypropylene', 'tubing', 'employee', 'pulled', 'pickup', 'truck', 'positioned', 'place', 'pressing', 'finger', 'tube', 'concrete', 'wallmaintenance', 'peristaltic', 'pump', 'change', 'internal', 'hose', 'rupture', 'tubing', 'reserve', 'pump', 'ruptured', 'started', 'operate', 'designing', 'solution', 'heated', 'towards', 'employee', 'reaching', 'left', 'forearm', 'causing', 'irritation', 'skinmaintenance', 'peristaltic', 'pump', 'change', 'internal', 'hose', 'rupture', 'tubing', 'reserve', 'pump', 'disrupted', 'started', 'operate', 'designing', 'solution', 'heated', 'towards', 'employee', 'reaching', 'left', 'forearm', 'causing', 'burnnv', 'south', 'mechanic', 'loosens', 'bolt', 'intermediate', 'cardan', 'protector', 'dumper', 'protector', 'released', 'imprisons', 'first', 'finger', 'left', 'hand', 'connector', 'hydraulic', 'steering', 'cylinder', 'position', 'performing', 'magnetometric', 'using', 'gps', 'collaborator', 'antonio', 'bumped', 'top', 'field', 'hat', 'branch', 'attacked', 'maribondos', 'bitten', 'behind', 'ear', 'another', 'shoulder', 'continued', 'activity', 'felt', 'pain', 'swellingaveraging', 'office', 'ajani', 'liliana', 'prepares', 'store', 'folder', 'warehouse', 'place', 'come', 'iglu', 'going', 'two', 'step', 'diagonally', 'sits', 'left', 'foot', 'edge', 'second', 'step', 'causing', 'foot', 'bend', 'left', 'inward', 'stabilizes', 'quickly', 'avoiding', 'falling', 'groundmoment', 'extracting', 'bolt', 'chuck', 'rotation', 'unit', 'vsd', 'instant', 'made', 'hit', 'rope', 'base', 'support', 'bolt', 'fragment', 'metal', 'structure', 'projected', 'impacting', 'face', 'mechanic', 'freddy', 'described', 'injurypainting', 'pumping', 'pipe', 'completed', 'person', 'involved', 'involuntarily', 'touch', 'face', 'hand', 'glove', 'full', 'paint', 'clean', 'make', 'use', 'dry', 'industrial', 'cloth', 'begin', 'rub', 'face', 'period', 'time', 'second', 'continuously', 'finally', 'paint', 'face', 'cleaned', 'friction', 'generates', 'described', 'injuryconclusion', 'unloading', 'ore', 'amp', 'plate', 'tipper', 'pit', 'driver', 'notice', 'stretch', 'support', 'mesh', 'stuck', 'hopper', 'hatch', 'driver', 'get', 'equipment', 'hopper', 'lifted', 'remove', 'hand', 'mesh', 'generating', 'force', 'fine', 'particle', 'rock', 'fall', 'one', 'impregnated', 'eye', 'injured', 'time', 'incident', 'injured', 'person', 'used', 'measuring', 'glass', 'surchargesmr', 'walter', 'putting', 'tool', 'hopper', 'atlas', 'truck', 'parked', 'cruise', 'level', 'obb', 'mining', 'operation', 'van', 'arrived', 'driven', 'engineer', 'parked', 'behind', 'truck', 'atlas', 'approximately', 'meter', 'without', 'placed', 'safety', 'block', 'went', 'request', 'data', 'drilling', 'later', 'assistant', 'simba', 'opened', 'gate', 'dropping', 'bit', 'hopper', 'mine', 'truck', 'untimely', 'vehicle', 'moved', 'forward', 'pinning', 'mechanic', 'right', 'legtransport', 'piece', 'wood', 'aid', 'wheelbarrow', 'employee', 'felt', 'prick', 'right', 'leg', 'moment', 'stopped', 'activity', 'removed', 'legging', 'shaking', 'pant', 'noticed', 'small', 'scorpionmining', 'cycle', 'chimney', 'starting', 'drilling', 'work', 'anchor', 'lane', 'alimak', 'system', 'collaborator', 'squat', 'pick', 'manual', 'tool', 'platform', 'moment', 'jackleg', 'team', 'loses', 'position', 'project', 'towards', 'back', 'collaborator', 'generating', 'injurysupport', 'process', 'circumstance', 'assistant', 'performs', 'last', 'cut', 'transverse', 'length', 'mesh', 'mesh', 'generates', 'movement', 'towards', 'operator', 'hit', 'face', 'causing', 'described', 'injury', 'assisting', 'gps', 'magnetometric', 'collaborator', 'gilvanio', 'bumped', 'top', 'field', 'hat', 'branch', 'attacked', 'maribondos', 'moth', 'went', 'towards', 'eye', 'due', 'use', 'sunglass', 'attack', 'region', 'prevented', 'insect', 'moved', 'side', 'face', 'getting', 'caught', 'ear', 'back', 'field', 'hat', 'making', 'helper', 'get', 'two', 'bite', 'behind', 'ear', 'gilvanio', 'allergic', 'marimbondos', 'bite', 'soon', 'activity', 'immediately', 'paralyzed', 'drove', 'car', 'accident', 'took', 'medicine', 'antiallergic', 'already', 'used', 'situation', 'work', 'indicated', 'another', 'doctor', 'avoid', 'swelling', 'marcelo', 'responsible', 'project', 'also', 'field', 'mapping', 'activity', 'called', 'radio', 'immediately', 'assistant', 'felt', 'good', 'taken', 'emergency', 'hospital', 'lavras', 'sul', 'consulted', 'doctor', 'took', 'antiallergic', 'released', 'around', 'moment', 'staff', 'impromec', 'company', 'heading', 'towards', 'pique', 'support', 'shotcrete', 'casting', 'job', 'one', 'electrician', 'identify', 'lane', 'water', 'road', 'right', 'leg', 'enters', 'gutter', 'depth', 'causing', 'injury', 'service', 'litorina', 'paralyzed', 'entrance', 'personnelemployee', 'descending', 'ladder', 'inspection', 'milling', 'cyclone', 'give', 'access', 'floor', 'behind', 'mill', 'platform', 'iscmg', 'floor', 'gave', 'way', 'fell', 'height', 'approximately', 'meter', 'meter', 'material', 'ore', 'platform', 'decreasing', 'height', 'fall', 'impactarea', 'lloclla', 'meter', 'substation', 'nro', 'circumstance', 'worker', 'preparing', 'pick', 'rope', 'floor', 'several', 'fragment', 'rock', 'slide', 'slope', 'hill', 'one', 'fragment', 'diameter', 'approximately', 'impact', 'face', 'worker', 'producing', 'aforementioned', 'injuryperforming', 'cleaning', 'activity', 'area', 'near', 'grinding', 'employee', 'handling', 'block', 'triangular', 'shaped', 'rock', 'measuring', 'movement', 'lost', 'balance', 'falling', 'rock', 'thumb', 'left', 'hand', 'injuringcarrying', 'refractory', 'brick', 'chopping', 'activity', 'order', 'place', 'support', 'bus', 'bar', 'section', 'particle', 'detached', 'hitting', 'assistant', 'right', 'arm', 'one', 'meter', 'away', 'work', 'area', 'provoking', 'wound', 'arm', 'treated', 'medical', 'center', 'returned', 'usual', 'duty', 'soil', 'sampling', 'region', 'sta', 'employee', 'rafael', 'danillo', 'silva', 'attacked', 'bee', 'test', 'rushed', 'away', 'place', 'employee', 'rafael', 'took', 'bite', 'one', 'chin', 'one', 'chest', 'one', 'neck', 'one', 'hand', 'glove', 'employee', 'took', 'bite', 'one', 'hand', 'glove', 'head', 'employee', 'danillo', 'took', 'bite', 'left', 'arm', 'uniform', 'first', 'one', 'sketched', 'allergy', 'swelling', 'sting', 'site', 'activity', 'stopped', 'evaluate', 'site', 'verifying', 'test', 'remained', 'line', 'left', 'siteemployee', 'hitchhiking', 'cep', 'truck', 'equipment', 'crossed', 'central', 'canterio', 'track', 'catch', 'key', 'wheel', 'loader', 'another', 'operator', 'stopped', 'opposite', 'direction', 'upon', 'returning', 'truck', 'hit', 'arm', 'left', 'loader', 'tire', 'traveling', 'along', 'road', 'passed', 'cep', 'right', 'approx', 'collaborator', 'duval', 'sampler', 'preparing', 'change', 'remove', 'bucket', 'pulp', 'sample', 'plant', 'courier', 'slipped', 'fell', 'ground', 'supporting', 'right', 'hand', 'generating', 'lesion', 'described', 'performing', 'mag', 'activity', 'employee', 'murilo', 'silva', 'moving', 'acquisition', 'line', 'came', 'across', 'small', 'drainage', 'approximately', 'wide', 'small', 'gap', 'traversed', 'drainage', 'employee', 'rested', 'right', 'foot', 'ravine', 'came', 'rest', 'causing', 'right', 'ankle', 'twist', 'soon', 'twisting', 'activity', 'paralyzed', 'employee', 'taken', 'local', 'hospital', 'xray', 'taken', 'examination', 'made', 'physician', 'serious', 'injury', 'found', 'small', 'swelling', 'released', 'normal', 'activitieslevel', 'license', 'plate', 'went', 'level', 'surface', 'pilot', 'trying', 'locate', 'radio', 'answer', 'call', 'concrete', 'plant', 'distracted', 'crash', 'vehicle', 'left', 'gable', 'vehicle', 'turn', 'right', 'side', 'happens', 'copilot', 'hit', 'right', 'hand', 'fragment', 'broken', 'glass', 'window', 'right', 'side', 'vehiclescoop', 'heading', 'rpa', 'cutoff', 'point', 'cro', 'south', 'unloaded', 'visualizes', 'truck', 'parked', 'light', 'engine', 'ignited', 'inside', 'thrust', 'scoop', 'found', 'accumulating', 'dismount', 'operator', 'stop', 'scoop', 'get', 'tell', 'driver', 'truck', 'leave', 'find', 'one', 'decides', 'look', 'driver', 'top', 'cro', 'south', 'find', 'return', 'scoop', 'meter', 'visualizes', 'light', 'lamp', 'shining', 'direction', 'gable', 'approaching', 'find', 'deceased', 'lying', 'side', 'scoop', 'proceeds', 'give', 'immediate', 'notice', 'supervisory', 'shift', 'control', 'center', 'emergency', 'centeremployee', 'performing', 'maintenance', 'filter', 'press', 'filtration', 'area', 'grs', 'dismantled', 'hose', 'clamp', 'turning', 'motion', 'contact', 'burr', 'tip', 'one', 'screw', 'exposed', 'causing', 'cut', 'glove', 'wound', 'quirodactilo', 'left', 'handnv', 'chamber', 'accumulation', 'aggregate', 'worker', 'made', 'cast', 'shotcrete', 'towards', 'crown', 'work', 'perceives', 'discomfort', 'fogging', 'full', 'face', 'decides', 'take', 'chooses', 'use', 'safety', 'glass', 'comfort', 'continue', 'thrown', 'shotcrete', 'suffers', 'projection', 'shotcrete', 'rebound', 'particle', 'left', 'eyeteam', 'vms', 'project', 'performed', 'soil', 'collection', 'xixas', 'target', 'member', 'team', 'moving', 'one', 'collection', 'point', 'another', 'fabio', 'ahead', 'team', 'stinging', 'behind', 'robson', 'manoel', 'silva', 'near', 'collection', 'point', 'surprised', 'swarm', 'bee', 'inside', 'play', 'near', 'ground', 'visibility', 'wood', 'hissing', 'noise', 'fabio', 'passed', 'stump', 'robson', 'manoel', 'silva', 'attacked', 'bee', 'robson', 'sting', 'left', 'arm', 'uniform', 'manoel', 'silva', 'prick', 'lip', 'screen', 'ripped', 'tangled', 'branch', 'escapepreparation', 'solubilization', 'activity', 'sample', 'chapel', 'maid', 'moving', 'vial', 'nitric', 'acid', 'detached', 'doser', 'causing', 'projection', 'region', 'face', 'upper', 'limbsactivity', 'changing', 'conveyor', 'belt', 'feeding', 'primary', 'mill', 'mechanic', 'entered', 'discharge', 'chute', 'clean', 'material', 'time', 'automatic', 'sampler', 'inside', 'chute', 'activated', 'trapping', 'mechanic', 'height', 'chest', 'time', 'accident', 'mechanic', 'alone', 'work', 'areaapproximately', 'hour', 'change', 'cable', 'power', 'cell', 'locked', 'cabinet', 'transformer', 'loud', 'noise', 'followed', 'oscillation', 'electrical', 'system', 'moment', 'collaborator', 'queneche', 'company', 'eissa', 'found', 'floor', 'head', 'inside', 'adjoining', 'cell', 'cabinet', 'blocked', 'assigned', 'work', 'received', 'electric', 'shockmixer', 'ecm', 'incimmet', 'moved', 'positive', 'south', 'ramp', 'direction', 'surface', 'unicon', 'concrete', 'plant', 'height', 'operator', 'observes', 'untimely', 'light', 'engine', 'control', 'control', 'respond', 'equipment', 'start', 'reverse', 'meter', 'operator', 'jump', 'cabin', 'meter', 'team', 'hit', 'right', 'gable', 'turn', 'side', 'left', 'area', 'circumstance', 'event', 'presence', 'personnel', 'equipment', 'could', 'affectedtechnician', 'magnetometric', 'survey', 'stepped', 'thorn', 'reaction', 'immediately', 'retreat', 'losing', 'balance', 'magnetometer', 'antenna', 'brokeemployee', 'report', 'assisted', 'maintenance', 'activity', 'tower', 'electrolysis', 'stepped', 'grp', 'grid', 'polymer', 'glass', 'floor', 'moving', 'causing', 'fall', 'event', 'took', 'place', 'stage', 'displacement', 'fall', 'floor', 'span', 'receiving', 'effort', 'employee', 'fall', 'grp', 'floor', 'side', 'gutter', 'floor', 'supporting', 'structure', 'employee', 'fall', 'lower', 'level', 'grp', 'flooremployee', 'report', 'supervising', 'activity', 'ustulation', 'near', 'ball', 'projection', 'hot', 'humped', 'dust', 'upper', 'floor', 'reached', 'cervical', 'neck', 'region', 'causing', 'first', 'degree', 'burnemployee', 'performed', 'task', 'hoisting', 'bigbags', 'containing', 'waelz', 'oxide', 'performing', 'several', 'hoistings', 'employee', 'suffered', 'lowvoltage', 'electric', 'shock', 'contacting', 'hoist', 'attaching', 'handle', 'bigbagemployee', 'moved', 'toward', 'structure', 'post', 'came', 'step', 'false', 'suffering', 'twisting', 'left', 'ankle', 'around', 'current', 'sediment', 'activity', 'collaborator', 'warley', 'took', 'bee', 'sting', 'neck', 'using', 'screen', 'bee', 'entered', 'bottom', 'screen', 'sting', 'team', 'decided', 'leave', 'workplace', 'due', 'presence', 'bee', 'collaborator', 'reaction', 'continued', 'work', 'normallyindustrial', 'cleaning', 'worker', 'cristian', 'performing', 'cleaning', 'activity', 'gutter', 'striking', 'wall', 'remove', 'solid', 'solution', 'formed', 'moment', 'operator', 'hand', 'slide', 'impact', 'edge', 'gutter', 'causing', 'blow', 'little', 'finger', 'left', 'handlevel', 'formerly', 'level', 'hydraulic', 'filling', 'personnel', 'performed', 'installation', 'diameter', 'hdpe', 'pipe', 'ventilation', 'chimney', 'help', 'yard', 'scooptram', 'held', 'pushed', 'end', 'pipe', 'pipe', 'meter', 'length', 'moment', 'pipe', 'get', 'stuck', 'edge', 'chimney', 'causing', 'pipe', 'form', 'arc', 'height', 'injured', 'worker', 'signal', 'light', 'lamp', 'operator', 'scooptram', 'stop', 'trying', 'retire', 'line', 'fire', 'worker', 'loses', 'balance', 'light', 'contact', 'pipe', 'causing', 'fall', 'levelemployee', 'perform', 'painting', 'floor', 'fuel', 'tank', 'area', 'needed', 'cleaning', 'pouring', 'waterthinner', 'floor', 'bucket', 'slipped', 'hand', 'mixture', 'projected', 'onto', 'left', 'shoulder', 'lower', 'lip', 'causing', 'redness', 'burningexecution', 'soil', 'sampling', 'task', 'potion', 'area', 'around', 'luis', 'wca', 'opening', 'machete', 'bitten', 'wasp', 'back', 'right', 'hand', 'using', 'time', 'incident', 'epi', 'needed', 'activity', 'employee', 'evaluated', 'technician', 'found', 'mild', 'localized', 'swelling', 'wound', 'employee', 'reported', 'feel', 'pain', 'could', 'continue', 'activitytower', 'old', 'disabled', 'deenergized', 'dismantled', 'located', 'city', 'pasco', 'last', 'profile', 'base', 'tower', 'previously', 'disassembled', 'cut', 'using', 'oxyfuel', 'equipment', 'proingcom', 'security', 'supervisor', 'foreman', 'outside', 'fenced', 'area', 'supervising', 'activity', 'indicate', 'stoppage', 'activity', 'evacuation', 'refuge', 'due', 'orange', 'alert', 'indicated', 'detector', 'storm', 'evacuation', 'last', 'employee', 'inside', 'fenced', 'area', 'loud', 'sound', 'heard', 'provoking', 'fright', 'caused', 'staff', 'throw', 'floor', 'inside', 'area', 'proceeded', 'leave', 'work', 'area', 'mean', 'ladder', 'apparently', 'loud', 'sound', 'would', 'correspond', 'electrical', 'discharge', 'cable', 'guard', 'pass', 'old', 'towerstower', 'old', 'disabled', 'deenergized', 'disassembled', 'located', 'city', 'pasco', 'cutting', 'last', 'profile', 'base', 'tower', 'previously', 'disassembled', 'carried', 'using', 'oxyfuel', 'equipment', 'safety', 'supervisor', 'proingcom', 'foreman', 'external', 'part', 'fenced', 'area', 'supervising', 'activity', 'indicate', 'paralysis', 'activity', 'evacuation', 'refuge', 'due', 'orange', 'alert', 'indicated', 'detector', 'storm', 'evacuation', 'last', 'employee', 'inside', 'fenced', 'area', 'loud', 'sound', 'heard', 'provoking', 'scare', 'caused', 'staff', 'throw', 'floor', 'within', 'area', 'proceeded', 'leave', 'work', 'area', 'mean', 'staircase', 'apparently', 'loud', 'sound', 'would', 'correspond', 'electrical', 'discharge', 'cable', 'guard', 'pass', 'old', 'towersend', 'concreting', 'activity', 'employee', 'turned', 'concrete', 'rolling', 'handle', 'make', 'return', 'equipment', 'warehouse', 'bumped', 'tip', 'mangote', 'inferior', 'lip', 'causing', 'hematomamarking', 'management', 'point', 'supervision', 'breeder', 'enter', 'work', 'carry', 'ventilation', 'inspection', 'surveying', 'work', 'stop', 'turn', 'fan', 'proceed', 'air', 'flow', 'measurement', 'fan', 'turned', 'due', 'pressure', 'break', 'fastening', 'point', 'toe', 'sleeve', 'fall', 'floor', 'generating', 'chicoteo', 'gable', 'gable', 'product', 'chicoteo', 'fragment', 'aggregate', 'shocrete', 'projected', 'face', 'injured', 'person', 'producing', 'injuryexecution', 'service', 'opening', 'pricked', 'future', 'work', 'around', 'employee', 'pedro', 'second', 'line', 'equipment', 'stung', 'wasp', 'right', 'portion', 'neck', 'beetle', 'small', 'size', 'seen', 'employee', 'bite', 'causing', 'employee', 'shock', 'insect', 'manifested', 'employee', 'used', 'ppes', 'required', 'activity', 'developed', 'bite', 'occurred', 'collar', 'shirt', 'face', 'shield', 'technician', 'responsible', 'performing', 'work', 'evaluated', 'sting', 'together', 'injured', 'employee', 'found', 'localized', 'swelling', 'allergy', 'would', 'need', 'paralyze', 'activity', 'followed', 'normallymoments', 'william', 'carried', 'inspection', 'cut', 'block', 'level', 'oba', 'loading', 'platform', 'could', 'realized', 'instant', 'observed', 'drill', 'positive', 'radial', 'one', 'covered', 'shotcreteados', 'hears', 'noise', 'upper', 'part', 'pit', 'detachment', 'bank', 'center', 'pit', 'william', 'back', 'leave', 'work', 'metatarsal', 'boot', 'make', 'contact', 'rock', 'floor', 'cause', 'lose', 'balance', 'stumble', 'gable', 'employee', 'lima', 'silva', 'composing', 'team', 'opening', 'bite', 'survey', 'team', 'consisted', 'one', 'mining', 'technician', 'three', 'assistant', 'moving', 'bite', 'touched', 'left', 'foot', 'stump', 'tucum', 'ground', 'covered', 'dry', 'leaf', 'vegetation', 'near', 'drainage', 'felt', 'thorn', 'piercing', 'foot', 'told', 'mining', 'technician', 'happened', 'teammate', 'removed', 'thorn', 'pierced', 'top', 'boot', 'removal', 'spine', 'foot', 'washed', 'verified', 'injury', 'event', 'technician', 'waxed', 'activity', 'returned', 'city', 'porangatu', 'necessary', 'take', 'employee', 'health', 'unitapprox', 'victor', 'time', 'made', 'visual', 'inspection', 'scaffolding', 'suffered', 'slight', 'blow', 'level', 'right', 'ear', 'metallic', 'extension', 'chute', 'conveyor', 'chainexecution', 'soil', 'sampling', 'task', 'potion', 'area', 'around', 'pablo', 'moving', 'bite', 'bitten', 'right', 'elbow', 'wasp', 'sleeve', 'uniform', 'using', 'time', 'incident', 'ppe', 'needed', 'activity', 'employee', 'evaluated', 'team', 'found', 'mild', 'injury', 'localized', 'swelling', 'employee', 'reported', 'feel', 'pain', 'could', 'continue', 'activityactivity', 'front', 'sanitation', 'slaughter', 'choco', 'scaller', 'local', 'underground', 'mine', 'level', 'front', 'upper', 'jka', 'operator', 'performed', 'front', 'sanitation', 'rock', 'block', 'roof', 'hit', 'equipment', 'accident', 'victim', 'promptly', 'rescued', 'unit', 'emergency', 'brigade', 'transported', 'outpatient', 'clinic', 'received', 'first', 'care', 'transferred', 'municipal', 'paracatuperforming', 'cleaning', 'material', 'mineral', 'accumulates', 'steel', 'plate', 'concrete', 'base', 'rest', 'shown', 'photograph', 'steel', 'plate', 'thickness', 'order', 'complete', 'cleaning', 'worker', 'decide', 'weld', 'steel', 'plate', 'support', 'eyelet', 'type', 'end', 'fixed', 'point', 'fastening', 'pin', 'helical', 'support', 'way', 'lift', 'plate', 'help', 'key', 'remove', 'accumulated', 'material', 'instant', 'pulling', 'chain', 'tecla', 'injured', 'one', 'left', 'hand', 'resting', 'concrete', 'wall', 'line', 'fire', 'product', 'tension', 'exerted', 'tecle', 'helical', 'bolt', 'break', 'chain', 'lash', 'index', 'finger', 'generating', 'injury', 'time', 'accident', 'accident', 'victim', 'used', 'epps', 'including', 'glovescircumstances', 'efrain', 'osorio', 'felix', 'mina', 'entered', 'interior', 'pocket', 'level', 'activated', 'compressed', 'air', 'gun', 'installed', 'lower', 'part', 'structure', 'nozzle', 'communicates', 'air', 'lung', 'internal', 'part', 'pocket', 'projecting', 'violent', 'flow', 'air', 'blow', 'left', 'leg', 'worker', 'generates', 'stun', 'noise', 'producedemployee', 'report', 'performed', 'routine', 'activity', 'foundry', 'area', 'necessary', 'fit', 'last', 'zamac', 'ingot', 'one', 'package', 'point', 'ingot', 'slipped', 'hit', 'back', 'right', 'foot', 'causing', 'pain', 'safety', 'footwear', 'worn', 'employee', 'steel', 'toe', 'metatarsal', 'protectoremployee', 'used', 'lever', 'remove', 'sealing', 'ring', 'front', 'tire', 'wheel', 'loader', 'lhd', 'lever', 'came', 'release', 'fulcrum', 'ring', 'press', 'left', 'ring', 'finger', 'loader', 'shell', 'causing', 'traumatism', 'tip', 'said', 'fingeremployee', 'report', 'performed', 'routine', 'activity', 'area', 'electrolysis', 'trying', 'position', 'one', 'cathode', 'sheet', 'easel', 'hit', 'sleeve', 'caused', 'cut', 'superficially', 'left', 'handemployee', 'engaged', 'adjusting', 'metallic', 'shape', 'using', 'tether', 'striking', 'shape', 'tether', 'cable', 'hit', 'lifeline', 'projecting', 'hand', 'metal', 'structure', 'shape', 'causing', 'superficial', 'injury', 'ring', 'finger', 'right', 'handcircumstances', 'staff', 'performing', 'rhyming', 'caving', 'pipe', 'suspended', 'approximately', 'floor', 'assistant', 'placed', 'stilson', 'key', 'pipe', 'fit', 'pipe', 'height', 'base', 'rod', 'holder', 'operator', 'operates', 'chuck', 'slide', 'back', 'causing', 'pipe', 'slide', 'causing', 'tip', 'fourth', 'finger', 'assistant', 'right', 'hand', 'caught', 'stilson', 'key', 'base', 'rod', 'holder', 'time', 'event', 'collaborator', 'used', 'eppsemployees', 'marcio', 'sergio', 'performed', 'pump', 'pipe', 'clearing', 'activity', 'removal', 'suction', 'spool', 'flange', 'bolt', 'projection', 'pulp', 'causing', 'injuriesperforming', 'shotcrete', 'casting', 'resane', 'cruise', 'approximately', 'operator', 'placed', 'left', 'side', 'equipment', 'started', 'release', 'cubic', 'meter', 'time', 'decided', 'paralyze', 'task', 'minute', 'due', 'leak', 'water', 'roof', 'box', 'allow', 'adhesion', 'shotcrete', 'rock', 'setting', 'restarting', 'shotcrete', 'launch', 'operator', 'left', 'side', 'moved', 'right', 'side', 'equipment', 'assistant', 'operator', 'mixkret', 'see', 'pumping', 'went', 'verify', 'happened', 'returned', 'realized', 'operator', 'assume', 'fallen', 'chimney', 'left', 'job', 'ask', 'help', 'immediately', 'emergency', 'response', 'brigade', 'medical', 'service', 'activated', 'verify', 'death', 'collaborator', 'accident', 'investigation', 'beginsmaid', 'handling', 'pipette', 'sample', 'preparation', 'chemical', 'analysis', 'trying', 'place', 'threeway', 'pear', 'pipette', 'came', 'break', 'causing', 'superficial', 'cut', 'right', 'handarea', 'machine', 'tool', 'maestranza', 'mechanic', 'injured', 'operating', 'bench', 'drill', 'drilling', 'metal', 'jacket', 'lining', 'install', 'skip', 'moment', 'accompanied', 'mechanic', 'albino', 'manipulated', 'jacket', 'directed', 'maneuver', 'right', 'side', 'drill', 'albino', 'tell', 'stop', 'drill', 'verify', 'depth', 'drill', 'luis', 'lift', 'chuck', 'albino', 'pull', 'iron', 'verifies', 'everything', 'fine', 'communicates', 'restart', 'drilling', 'hole', 'moment', 'victim', 'without', 'apparent', 'reason', 'cross', 'left', 'arm', 'drill', 'caught', 'drill', 'work', 'clothes', 'causing', 'injury', 'describedemployee', 'passed', 'corner', 'front', 'door', 'seeing', 'virdro', 'slight', 'swelling', 'frontal', 'region', 'due', 'closing', 'glass', 'dooractivity', 'maintenance', 'scaller', 'breaker', 'arm', 'extension', 'cylinder', 'local', 'underground', 'mine', 'level', 'removal', 'cylinder', 'scaller', 'arm', 'releasing', 'fixing', 'pin', 'cylinder', 'came', 'bumped', 'tool', 'used', 'press', 'hand', 'tool', 'structure', 'equipment', 'hour', 'end', 'concentrate', 'truck', 'cleaning', 'driver', 'instructed', 'close', 'gate', 'moment', 'carlos', 'back', 'vehicle', 'reported', 'injury', 'left', 'hand', 'transferred', 'medical', 'center', 'attention', 'later', 'evacuation', 'clinic', 'mechanic', 'duty', 'section', 'antonio', 'observed', 'activity', 'withdrawal', 'check', 'pom', 'moment', 'impacted', 'pulp', 'line', 'discharge', 'stuck', 'causing', 'irritation', 'right', 'part', 'neck', 'ear', 'mechanic', 'referred', 'medical', 'center', 'evaluationmoments', 'collaborator', 'carried', 'inspection', 'conveyor', 'belt', 'tail', 'pulley', 'height', 'load', 'polymer', 'maslucan', 'collaborator', 'heard', 'noise', 'note', 'belt', 'moving', 'towards', 'tail', 'pulley', 'fragmentos', 'mineral', 'fragment', 'projected', 'towards', 'access', 'ramp', 'impacting', 'collaborator', 'evacuated', 'medical', 'postcircumstances', 'worker', 'walking', 'along', 'straight', 'line', 'level', 'step', 'rock', 'approximately', 'bending', 'right', 'ankle', 'caused', 'injury', 'described', 'event', 'occurred', 'worker', 'decided', 'report', 'accident', 'feel', 'pain', 'approximately', 'begin', 'feel', 'discomfort', 'walking', 'progressive', 'mild', 'pain', 'ankle', 'moment', 'communicates', 'eventupon', 'entering', 'building', 'maid', 'slipped', 'fell', 'behind', 'automatic', 'door', 'front', 'entry', 'mat', 'floor', 'wet', 'slipperyemployee', 'report', 'trying', 'unlock', 'cathodic', 'sheet', 'digger', 'realize', 'blade', 'pressed', 'cable', 'projected', 'hit', 'facelevel', 'guide', 'wire', 'chamber', 'preparation', 'activity', 'mix', 'shocrete', 'worker', 'performs', 'emptying', 'bag', 'cement', 'towards', 'bucket', 'complete', 'dosage', 'moment', 'dust', 'generated', 'cement', 'enters', 'lower', 'part', 'lens', 'left', 'eye', 'causing', 'irritationmr', 'emerson', 'moving', 'tray', 'climbing', 'staircase', 'give', 'access', 'former', 'dining', 'room', 'finding', 'last', 'step', 'slip', 'fall', 'floor', 'supporting', 'body', 'forward', 'suffering', 'blow', 'right', 'knee', 'floor', 'well', 'nose', 'metal', 'tray', 'carrying', 'causing', 'cut', 'nose', 'ematoma', 'kneecircumstances', 'worker', 'prepared', 'food', 'electric', 'pot', 'ensuring', 'lid', 'fall', 'head', 'causing', 'injury', 'describedcircumstances', 'worker', 'two', 'partner', 'placing', 'killer', 'bomb', 'basket', 'manitou', 'team', 'bomb', 'hit', 'index', 'finger', 'right', 'hand', 'basketapprox', 'hour', 'luis', 'maintenance', 'team', 'mobile', 'equipment', 'adjusted', 'bolt', 'front', 'loader', 'time', 'face', 'impacted', 'key', 'used', 'activity', 'producing', 'slight', 'cut', 'surface', 'face', 'transferred', 'medical', 'service', 'attended', 'registeredcircumstances', 'driver', 'plate', 'truck', 'impromec', 'went', 'garit', 'plant', 'chicrin', 'entering', 'internal', 'mine', 'area', 'santa', 'approx', 'old', 'dining', 'room', 'stop', 'vehicle', 'informs', 'copilot', 'longer', 'drive', 'turn', 'vehicle', 'trying', 'get', 'van', 'loses', 'balance', 'fall', 'seat', 'complaining', 'intense', 'pain', 'lumbar', 'area', 'citing', 'pain', 'due', 'overexertion', 'due', 'routine', 'activity', 'evacuation', 'residual', 'oil', 'solid', 'waste', 'cylinder', 'previously', 'performed', 'collaborator', 'time', 'event', 'used', 'corresponding', 'eppsemployee', 'performed', 'insertion', 'adjustment', 'joint', 'blind', 'flange', 'tubing', 'one', 'wedge', 'shifted', 'causing', 'movement', 'flange', 'causing', 'finger', 'left', 'hand', 'pressedconvoy', 'locomotive', 'operated', 'tito', 'located', 'hopper', 'positioning', 'car', 'hopper', 'assistant', 'observe', 'anything', 'ordinary', 'dry', 'load', 'presence', 'water', 'initiate', 'chute', 'hydraulic', 'module', 'hopper', 'switched', 'control', 'slightly', 'move', 'hopper', 'handle', 'untimely', 'flow', 'water', 'mud', 'splash', 'operator', 'generating', 'described', 'injury', 'addition', 'collaborator', 'meter', 'line', 'firemaster', 'additive', 'taken', 'afo', 'license', 'plate', 'towards', 'launching', 'team', 'collaborator', 'bonifacio', 'robot', 'assistant', 'moment', 'received', 'bucket', 'emptiness', 'operator', 'enoc', 'feel', 'drop', 'drop', 'additive', 'right', 'eye', 'feeling', 'burning', 'sensation', 'immediately', 'wash', 'affected', 'eye', 'team', 'eye', 'collaborator', 'evacuated', 'natclar', 'time', 'accident', 'employee', 'glass', 'using', 'correctly', 'driver', 'aeq', 'plate', 'dump', 'truck', 'ton', 'heading', 'loading', 'area', 'parking', 'proceeding', 'ore', 'loading', 'scoop', 'ydrs', 'moment', 'lift', 'first', 'scoop', 'towards', 'hopper', 'large', 'bank', 'fall', 'causing', 'tipper', 'shake', 'violently', 'operator', 'hit', 'gear', 'lever', 'communicate', 'supervisor', 'evacuated', 'medical', 'centerinjured', 'collaborator', 'time', 'making', 'hdpe', 'pipe', 'used', 'hydraulic', 'filling', 'released', 'causing', 'one', 'end', 'pipe', 'impact', 'lip', 'causing', 'injury', 'apparently', 'support', 'deconcentrates', 'release', 'little', 'pipe', 'action', 'generates', 'pipe', 'presented', 'rubber', 'victaulica', 'copla', 'released', 'generating', 'impact', 'previously', 'described', 'pipe', 'empty', 'without', 'hydraulic', 'loadcircumstance', 'ahk', 'license', 'plate', 'empresa', 'serf', 'supervision', 'cma', 'carried', 'field', 'inspection', 'upper', 'bank', 'unexpectedly', 'climbing', 'operational', 'access', 'positive', 'ramp', 'slide', 'excavated', 'area', 'approximately', 'meter', 'high', 'remaining', 'position', 'front', 'part', 'floor', 'occupant', 'vehicle', 'made', 'use', 'safety', 'belt', 'complete', 'eppssurface', 'comedor', 'worker', 'company', 'made', 'cut', 'lemon', 'time', 'imprisoned', 'knife', 'generating', 'movement', 'impacting', 'first', 'finger', 'left', 'hand', 'causing', 'slight', 'cutemployee', 'report', 'removing', 'zinc', 'sheet', 'cathode', 'take', 'easel', 'slipped', 'hand', 'fell', 'hit', 'left', 'footexecution', 'task', 'assembling', 'box', 'testimony', 'box', 'area', 'bonsucesso', 'around', 'orlando', 'research', 'driller', 'geosol', 'trying', 'fit', 'two', 'part', 'trestle', 'third', 'piece', 'fell', 'hand', 'piece', 'held', 'causing', 'small', 'trauma', 'left', 'thumb', 'employee', 'referred', 'sao', 'lucas', 'hospital', 'paracatu', 'ltda', 'attended', 'released', 'without', 'leaving', 'work', 'soontechnician', 'returning', 'activity', 'bite', 'stepped', 'loose', 'rock', 'sloping', 'region', 'released', 'unbalancing', 'employee', 'stepped', 'false', 'twisting', 'anklefield', 'activity', 'amg', 'project', 'target', 'sao', 'luiz', 'reconnaissance', 'team', 'boarding', 'car', 'parked', 'window', 'closed', 'entered', 'paulo', 'putting', 'seat', 'belt', 'inside', 'vehicle', 'pressed', 'wasp', 'shoulder', 'neck', 'causing', 'sting', 'believed', 'possibly', 'bee', 'nailed', 'clothes', 'car', 'properly', 'closedmaintenance', 'boltec', 'level', 'gts', 'rampa', 'xxx', 'mechanic', 'operator', 'equipment', 'performed', 'test', 'equipment', 'magazine', 'magazine', 'carousel', 'turned', 'operator', 'left', 'middle', 'finger', 'pressed', 'equipment', 'frameapproximately', 'approximately', 'lifting', 'kelly', 'towards', 'pulley', 'frame', 'align', 'assistant', 'marco', 'later', 'one', 'struck', 'hand', 'frame', 'generating', 'injurycollaborator', 'moved', 'infrastructure', 'office', 'julio', 'toilet', 'pin', 'right', 'shoe', 'hooked', 'bra', 'left', 'shoe', 'causing', 'take', 'step', 'fall', 'untimely', 'causing', 'injury', 'describedenvironmental', 'monitoring', 'activity', 'area', 'employee', 'surprised', 'swarming', 'swarm', 'weevil', 'exit', 'place', 'endured', 'suffering', 'two', 'sting', 'one', 'face', 'middle', 'finger', 'left', 'handemployee', 'performed', 'activity', 'stripping', 'cathode', 'pulling', 'cathode', 'sheet', 'hand', 'hit', 'side', 'another', 'cathode', 'causing', 'blunt', 'cut', 'finger', 'left', 'hand', 'assistant', 'cleaned', 'floor', 'module', 'central', 'camp', 'slipped', 'back', 'immediately', 'grabbed', 'laundry', 'table', 'avoid', 'falling', 'floor', 'suffering', 'described', 'injury']
print('Length of all the words:', len(tokens),'\n')
print('Length of unique tokens in the dataset:', len(np.unique(tokens)),'\n')
Length of all the words: 12607 Length of unique tokens in the dataset: 3015
Lemmatization: [For Reference]
Lemmatization is used in natural language processing (NLP), machine learning, and chatbots. It groups together the inflected forms of a word so they can be analyzed as a single item. The base form, orlemma, identifies the word. For example, the verb "to walk" may appear as "walk", "walked", "walks", or "walking". The base form, "walk", is called thelemma for the word.
Lemmatization is more accurate than stemming, but it's also more time consuming because it involves deriving the meaning of a word from something like a dictionary.
Lemmatization links similar meaning words as one word, making tools such as chatbots and search engine queries more effective and accurate. For example, search engines like Google make use of lemmatization so that they can provide better, more relevant results to their users.
Applying Lemmatization on Description and adding a new column.
data['NewDescription'] = data.apply(lambda x: " ".join(lemmatization(x.Description)), axis=1)
data.info()
<class 'pandas.core.frame.DataFrame'> Index: 411 entries, 0 to 424 Data columns (total 13 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Date 411 non-null datetime64[ns] 1 Countries 411 non-null object 2 Local 411 non-null object 3 Industry Sector 411 non-null object 4 Accident Level 411 non-null int64 5 Potential Accident Level 411 non-null int64 6 Gender 411 non-null object 7 Employee or Third Party 411 non-null object 8 Critical Risk 411 non-null object 9 Description 411 non-null object 10 month 411 non-null int32 11 year 411 non-null int32 12 NewDescription 411 non-null object dtypes: datetime64[ns](1), int32(2), int64(2), object(8) memory usage: 57.9+ KB
Comparing Description & New Description post lemmatization
data['Description'][2]
'substation milpo located level 170 collaborator excavation work pick hand tool hitting rock flat part beak bounces hitting steel tip safety shoe metatarsal area \u200b\u200bthe left foot collaborator causing injury'
data['NewDescription'][2]
'substation milpo located level collaborator excavation work pick hand tool hitting rock flat part beak bounce hitting steel tip safety shoe metatarsal area left foot collaborator causing injury'
Observations: [Comparing Description before & after Lemmatization]
N-grams
# Function to calculate ngrams
def extract_ngrams(data, num):
# Taking ngrams on Description column text and taking the value counts of each of the tokens
words_with_count = nltk.FreqDist(nltk.ngrams(data, num)).most_common(30) # taking top 30 most common words
# Creating the dataframe the words and thier counts
words_with_count = pd.DataFrame(words_with_count, columns=['Words', 'Count'])
# Removing the brackets and commans
words_with_count.Words = [' '.join(i) for i in words_with_count.Words]
# words_with_count.index = [' '.join(i) for i in words_with_count.Words]
words_with_count.set_index('Words', inplace=True) # setting the Words as index
# Returns the dataframe which contains unique tokens ordered by their counts
return words_with_count
for i in range(1,4):
print("extracting",i,"-gram")
print("---------------------")
# n-grams
n_grams = extract_ngrams(tokens, i)
print(n_grams[0:10])
n_grams.sort_values(by='Count').plot.barh(color = 'green', width = 0.8, figsize = (12,8));
print(" ")
extracting 1 -gram
---------------------
Count
Words
causing 164
hand 155
left 153
right 153
operator 120
employee 108
time 102
moment 88
activity 87
worker 78
extracting 2 -gram
---------------------
Count
Words
left hand 60
time accident 54
right hand 48
causing injury 36
finger left 25
hand causing 15
fragment rock 15
injured person 15
finger right 14
medical center 14
extracting 3 -gram
---------------------
Count
Words
finger left hand 20
injury time accident 13
finger right hand 11
time accident employee 9
left hand causing 6
time accident worker 6
causing injury described 6
right hand causing 6
described time accident 6
worker wearing safety 5
Observations:
1-gram (Uni-gram)
2-gram (Bi-gram)
3-gram (Tri-gram)
# Dividing the tokens with respect to Industry Sector from the description text
tokens_metals = lemmatization(' '.join(data[data['Industry Sector']=='Metals']['Description'].sum().split()))
tokens_mining = lemmatization(' '.join(data[data['Industry Sector']=='Mining']['Description'].sum().split()))
print('Total number of words in Metals category:', len(tokens_metals))
print('Total number of words in Mining category:',len(tokens_mining))
Total number of words in Metals category: 2765 Total number of words in Mining category: 7996
# Extracting unigrams on metals category
unigrams_metals = extract_ngrams(tokens_metals, 1).reset_index()
# Extracting unigrams on mining category
unigrams_mining = extract_ngrams(tokens_mining, 1).reset_index()
unigrams_metals.join(unigrams_mining, lsuffix='_Metals', rsuffix='_Mining')
| Words_Metals | Count_Metals | Words_Mining | Count_Mining | |
|---|---|---|---|---|
| 0 | left | 46 | hand | 106 |
| 1 | causing | 43 | causing | 103 |
| 2 | right | 37 | right | 102 |
| 3 | hand | 36 | operator | 100 |
| 4 | employee | 33 | left | 93 |
| 5 | hit | 27 | time | 88 |
| 6 | activity | 27 | worker | 66 |
| 7 | medical | 24 | assistant | 65 |
| 8 | report | 23 | equipment | 63 |
| 9 | area | 21 | accident | 63 |
| 10 | operator | 20 | moment | 58 |
| 11 | finger | 20 | mesh | 58 |
| 12 | moment | 19 | injury | 57 |
| 13 | hose | 17 | pipe | 56 |
| 14 | one | 16 | support | 54 |
| 15 | cleaning | 15 | work | 53 |
| 16 | sheet | 15 | collaborator | 50 |
| 17 | pump | 15 | rock | 50 |
| 18 | collaborator | 14 | floor | 50 |
| 19 | face | 14 | finger | 48 |
| 20 | cathode | 14 | level | 45 |
| 21 | acid | 14 | safety | 45 |
| 22 | pipe | 13 | hit | 42 |
| 23 | performed | 13 | height | 39 |
| 24 | fall | 13 | fall | 38 |
| 25 | cut | 13 | employee | 38 |
| 26 | center | 13 | one | 37 |
| 27 | remove | 12 | area | 37 |
| 28 | worker | 12 | meter | 37 |
| 29 | reaching | 12 | truck | 34 |
Ngram with Gender column
# Dividing the tokens of male and female category from the description text
tokens_male = lemmatization(' '.join(data[data.Gender=='Male']['Description'].sum().split()))
tokens_female = lemmatization(' '.join(data[data.Gender=='Female']['Description'].sum().split()))
print('Total number of words in Male category:', len(tokens_male))
print('Total number of words in Female category:',len(tokens_female))
Total number of words in Male category: 12244 Total number of words in Female category: 364
# Extracting unigrams on male category
unigrams_male = extract_ngrams(tokens_male, 1).reset_index()
# Extracting unigrams on female category
unigrams_female = extract_ngrams(tokens_female, 1).reset_index()
# Joining both the dataframes
uni_male_female = unigrams_male.join(unigrams_female, lsuffix='_Male', rsuffix='_Female')
#------------------------------------------------------------------------------------------
# Extracting bigrams on male category
bigrams_male = extract_ngrams(tokens_male, 2).reset_index()
# Extracting unigrams on female category
bigrams_female = extract_ngrams(tokens_female, 2).reset_index()
# Joining both the dataframes
bi_male_female = bigrams_male.join(bigrams_female, lsuffix='_Male', rsuffix='_Female')
print(bi_male_female)
Words_Male Count_Male Words_Female Count_Female 0 left hand 58 pump house 2 1 time accident 54 nitric acid 2 2 right hand 48 left hand 2 3 causing injury 35 step causing 2 4 finger left 24 cleaning activity 2 5 fragment rock 15 due overheating 1 6 injured person 15 overheating bar 1 7 hand causing 14 bar row 1 8 finger right 14 row cell 1 9 medical center 14 cell spark 1 10 injury time 14 spark produced 1 11 right side 13 produced projected 1 12 support mesh 13 projected manages 1 13 left foot 11 manages reach 1 14 right leg 10 reach chief 1 15 wearing safety 10 chief guard 1 16 time event 10 guard corridor 1 17 injury described 10 corridor producing 1 18 accident employee 10 producing first 1 19 split set 9 first degree 1 20 middle finger 9 degree burn 1 21 described injury 9 burn neckinjured 1 22 height meter 9 neckinjured woman 1 23 ring finger 9 woman performed 1 24 left side 9 performed cleaning 1 25 one end 8 cleaning cleaning 1 26 made use 8 cleaning sink 1 27 upper part 8 sink collection 1 28 left leg 8 collection room 1 29 generating described 8 room pierced 1
fig, axes = plt.subplots(1,4, figsize=(30, 10))
sns.barplot(y = uni_male_female['Words_Male'], x = uni_male_female['Count_Male'], ax=axes[0], color='red');
axes[0].set_title('Unigram with Male');
sns.barplot(y = uni_male_female['Words_Female'], x = uni_male_female['Count_Female'], ax=axes[1], color='red');
axes[1].set_title('Unigram with Female');
sns.barplot(y = bi_male_female['Words_Male'], x = bi_male_female['Count_Male'], ax=axes[2], color='skyblue');
axes[2].set_title('Bigram with Male');
sns.barplot(y = bi_male_female['Words_Female'], x = bi_male_female['Count_Female'], ax=axes[3], color='skyblue');
axes[3].set_title('Bigram with Male');
Word Cloud
wordcloud = WordCloud(width = 800, height = 800,
background_color ='white',
stopwords = stop_words,
min_font_size = 10).generate(' '.join(lemmatization(' '.join(data['Description'].sum().split()))))
plt.figure(figsize = (10, 15), facecolor = 'white', edgecolor='blue')
plt.imshow(wordcloud)
plt.axis("off")
plt.show()
Observations:
blob = TextBlob(str(data['NewDescription']))
pos_data = pd.DataFrame(blob.tags, columns = ['word', 'pos'])
pos_data = pos_data.pos.value_counts()[:20]
pos_data.head()
pos NN 35 CD 11 JJ 8 VBG 5 RB 5 Name: count, dtype: int64
pos_data.sort_values().plot.barh(color = 'pink', width = 0.8, figsize = (12,8))
<Axes: ylabel='pos'>
Some Examples:
NN - noun
NNP - proper noun
NNS - noun plural
CD - cardinal digit
DT - determiner
VB - verb
JJ - adjective
RB - adverb
VB - verb
VBD - verb past tense...etc
Step 4: Data preparation - Cleansed data in .xlsx or .csv file [ 5 points ]
# determining the name of the file
file_name = 'industrial_safety_data.xlsx'
# saving the excel
data.to_excel(file_name)
print('DataFrame is written to Excel File successfully.')
DataFrame is written to Excel File successfully.
Step 5: Design train and test basic machine learning classifiers [ 10 Points ]
Generating X & y using TfidfVectorizer()
# Load the data
# Convert `accident_level` to numerical using LabelEncoder
label_encoder = LabelEncoder()
data['Accident Level'] = label_encoder.fit_transform(data['Accident Level'])
# Vectorize the `des_new` column using TF-IDF
tfidf_vectorizer = TfidfVectorizer()
X = tfidf_vectorizer.fit_transform(data['NewDescription'])
# `y` is the `accident_level` column
y = data['Accident Level']
Splitting the data into train, temp, test & validation
# Split the data into training, validation, and test sets
X_train, X_temp, y_train, y_temp = train_test_split(X, y, test_size=0.3, random_state=42)
X_val, X_test, y_val, y_test = train_test_split(X_temp, y_temp, test_size=0.5, random_state=42)
Random Forest
# Train the Random Forest classifier
rf_clf = RandomForestClassifier(random_state=42)
rf_clf.fit(X_train, y_train)
# Make predictions
y_train_pred = rf_clf.predict(X_train)
y_val_pred = rf_clf.predict(X_val)
y_test_pred = rf_clf.predict(X_test)
Training Set
# Classification report and confusion matrix for the training set
print("Training Set - Classification Report:")
print(classification_report(y_train, y_train_pred))
print("\nTraining Set - Confusion Matrix:")
sns.heatmap(confusion_matrix(y_train, y_train_pred), annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Training Set')
plt.show()
Training Set - Classification Report:
precision recall f1-score support
0 1.00 1.00 1.00 209
1 1.00 1.00 1.00 29
2 1.00 1.00 1.00 23
3 1.00 1.00 1.00 22
4 1.00 1.00 1.00 4
accuracy 1.00 287
macro avg 1.00 1.00 1.00 287
weighted avg 1.00 1.00 1.00 287
Training Set - Confusion Matrix:
Validation Set
# Classification report and confusion matrix for the validation set
print("Validation Set - Classification Report:")
print(classification_report(y_val, y_val_pred))
print("\nValidation Set - Confusion Matrix:")
sns.heatmap(confusion_matrix(y_val, y_val_pred), annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Validation Set')
plt.show()
Validation Set - Classification Report:
precision recall f1-score support
0 0.71 1.00 0.83 44
1 0.00 0.00 0.00 6
2 0.00 0.00 0.00 4
3 0.00 0.00 0.00 5
4 0.00 0.00 0.00 3
accuracy 0.71 62
macro avg 0.14 0.20 0.17 62
weighted avg 0.50 0.71 0.59 62
Validation Set - Confusion Matrix:
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result))
Test Set
# Classification report and confusion matrix for the test set
print("Test Set - Classification Report:")
print(classification_report(y_test, y_test_pred))
print("\nTest Set - Confusion Matrix:")
sns.heatmap(confusion_matrix(y_test, y_test_pred), annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Test Set')
plt.show()
Test Set - Classification Report:
precision recall f1-score support
0 0.81 1.00 0.89 50
1 0.00 0.00 0.00 4
2 0.00 0.00 0.00 4
3 0.00 0.00 0.00 3
4 0.00 0.00 0.00 1
accuracy 0.81 62
macro avg 0.16 0.20 0.18 62
weighted avg 0.65 0.81 0.72 62
Test Set - Confusion Matrix:
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result))
Training Set: Performance: The model achieved a perfect accuracy (1.00) on the training set, with precision, recall, and F1-score all equal to 1.00 across all classes.
Interpretation: This perfect performance is a sign that the model may have overfit the training data. Overfitting occurs when a model learns not only the patterns in the data but also the noise, resulting in excellent performance on the training set but potentially poor generalization to new data.
Validation Set: Performance: The model performs poorly on the validation set, with an accuracy of 0.71. Precision, recall, and F1-scores are low across all classes except for class 0.
Interpretation: The low performance on the validation set, especially in classes 1 through 4, indicates that the model may be overfitting the training data and failing to generalize well to unseen data. The model heavily favors class 0, resulting in poor predictions for the other classes.
Test Set: Performance: Similar to the validation set, the model's accuracy on the test set is 0.81, which is decent. However, the performance across classes is uneven, with high performance for class 0 and very low performance for classes 1 through 4.
Interpretation: The uneven performance and lack of predictive power in classes 1 through 4 suggest the model is biased towards class 0 and struggles with the other classes. This could be due to an imbalanced dataset or overfitting.
Random Forest with Grid Search CV
# Define the Random Forest model
rf_clf = RandomForestClassifier(class_weight="balanced",random_state=42)
# Define the grid of hyperparameters to search
param_grid = {
'n_estimators': [10,20,30,40],
'max_depth': [None, 4, 10, 20],
'min_samples_split': [2, 5, 10],
'min_samples_leaf': [1, 2, 4],
"max_features": ["sqrt", 0.5, 0.7],
}
scorer = make_scorer(recall_score, average='weighted')
# Set up the GridSearchCV
grid_search = GridSearchCV(rf_clf, param_grid, cv=5, scoring=scorer, n_jobs=-1)
# Perform the grid search
grid_search.fit(X_train, y_train)
# Retrieve the best model
best_model = grid_search.best_estimator_
# Evaluate the model on the validation set
y_val_pred = best_model.predict(X_val)
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_split.py:700: UserWarning: The least populated class in y has only 4 members, which is less than n_splits=5. warnings.warn( /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result))
Validation Set
# Print the classification report for the validation set
print("Validation Set - Classification Report:")
print(classification_report(y_val, y_val_pred))
# Plot the confusion matrix for the validation set
print("\nValidation Set - Confusion Matrix:")
conf_matrix_val = confusion_matrix(y_val, y_val_pred)
sns.heatmap(conf_matrix_val, annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Validation Set')
plt.show()
# Retrieve the best hyperparameters
print("Best hyperparameters found by GridSearchCV:")
print(grid_search.best_params_)
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result))
Validation Set - Classification Report:
precision recall f1-score support
0 0.72 1.00 0.84 44
1 0.00 0.00 0.00 6
2 0.00 0.00 0.00 4
3 0.00 0.00 0.00 5
4 0.00 0.00 0.00 3
accuracy 0.71 62
macro avg 0.14 0.20 0.17 62
weighted avg 0.51 0.71 0.59 62
Validation Set - Confusion Matrix:
Best hyperparameters found by GridSearchCV:
{'max_depth': None, 'max_features': 'sqrt', 'min_samples_leaf': 2, 'min_samples_split': 5, 'n_estimators': 30}
Observations:
max_depth=None,
max_features=sqrt,
min_samples_leaf=1,
min_samples_split=2,
n_estimators=10
XGBoost
# Define the Gradient Boosting model
gb_clf = GradientBoostingClassifier(random_state=42)
# Define the grid of hyperparameters to search
# param_grid = {
# 'n_estimators': [50, 100, 200, 300],
# 'learning_rate': [0.01, 0.05, 0.1],
# 'max_depth': [3, 5, 7],
# 'min_samples_split': [2, 4, 6],
# 'min_samples_leaf': [1, 2, 4]
# }
param_grid = {
'n_estimators': [50, 100],
'learning_rate': [0.1],
'max_depth': [3, 5],
'min_samples_split': [2, 4],
'min_samples_leaf': [1, 2]
}
# Set up the GridSearchCV
grid_search = GridSearchCV(gb_clf, param_grid, cv=5, scoring='accuracy', n_jobs=-1)
# Perform the grid search
grid_search.fit(X_train, y_train)
# Retrieve the best model
best_model = grid_search.best_estimator_
# Evaluate the model on the validation set
y_val_pred = best_model.predict(X_val)
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_split.py:700: UserWarning: The least populated class in y has only 4 members, which is less than n_splits=5. warnings.warn(
Test Set
# Evaluate the model on the test set
y_test_pred = best_model.predict(X_test)
print("\nTest Set - Classification Report:")
print(classification_report(y_test, y_test_pred))
print("\nTest Set - Confusion Matrix:")
conf_matrix_test = confusion_matrix(y_test, y_test_pred)
sns.heatmap(conf_matrix_test, annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Test Set')
plt.show()
Test Set - Classification Report:
precision recall f1-score support
0 0.81 0.94 0.87 50
1 0.00 0.00 0.00 4
2 0.00 0.00 0.00 4
3 0.00 0.00 0.00 3
4 0.00 0.00 0.00 1
accuracy 0.76 62
macro avg 0.16 0.19 0.17 62
weighted avg 0.65 0.76 0.70 62
Test Set - Confusion Matrix:
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result))
Training Set
# Evaluate the model on the training set
y_train_pred = best_model.predict(X_train)
print("Training Set - Classification Report:")
print(classification_report(y_train, y_train_pred))
print("\nTraining Set - Confusion Matrix:")
conf_matrix_train = confusion_matrix(y_train, y_train_pred)
sns.heatmap(conf_matrix_train, annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Training Set')
plt.show()
Training Set - Classification Report:
precision recall f1-score support
0 1.00 1.00 1.00 209
1 1.00 1.00 1.00 29
2 1.00 1.00 1.00 23
3 1.00 1.00 1.00 22
4 1.00 1.00 1.00 4
accuracy 1.00 287
macro avg 1.00 1.00 1.00 287
weighted avg 1.00 1.00 1.00 287
Training Set - Confusion Matrix:
Validation Set
# Evaluate the model on the validation set
y_val_pred = best_model.predict(X_val)
print("\nValidation Set - Classification Report:")
print(classification_report(y_val, y_val_pred))
print("\nValidation Set - Confusion Matrix:")
conf_matrix_val = confusion_matrix(y_val, y_val_pred)
sns.heatmap(conf_matrix_val, annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Validation Set')
plt.show()
Validation Set - Classification Report:
precision recall f1-score support
0 0.71 0.95 0.82 44
1 0.00 0.00 0.00 6
2 0.00 0.00 0.00 4
3 0.00 0.00 0.00 5
4 0.00 0.00 0.00 3
accuracy 0.68 62
macro avg 0.14 0.19 0.16 62
weighted avg 0.51 0.68 0.58 62
Validation Set - Confusion Matrix:
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result))
# Retrieve the best hyperparameters
print("Best hyperparameters found by GridSearchCV:")
print(grid_search.best_params_)
Best hyperparameters found by GridSearchCV:
{'learning_rate': 0.1, 'max_depth': 5, 'min_samples_leaf': 1, 'min_samples_split': 2, 'n_estimators': 50}
SVM
# Define the SVM model
svm_clf = SVC(random_state=42)
# Define the grid of hyperparameters to search
param_grid = {
'C': [0.1, 1, 10, 100],
'kernel': ['linear', 'rbf', 'poly'],
'gamma': ['scale', 'auto'] if 'rbf' in ['linear', 'rbf', 'poly'] else [1],
'degree': [2, 3] if 'poly' in ['linear', 'rbf', 'poly'] else [3]
}
# Set up the GridSearchCV
grid_search = GridSearchCV(svm_clf, param_grid, cv=5, scoring='accuracy', n_jobs=-1)
# Perform the grid search
grid_search.fit(X_train, y_train)
# Retrieve the best model
best_model = grid_search.best_estimator_
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_split.py:700: UserWarning: The least populated class in y has only 4 members, which is less than n_splits=5. warnings.warn(
Test Set
# Evaluate the model on the test set
y_test_pred = best_model.predict(X_test)
print("\nTest Set - Classification Report:")
print(classification_report(y_test, y_test_pred))
print("\nTest Set - Confusion Matrix:")
conf_matrix_test = confusion_matrix(y_test, y_test_pred)
sns.heatmap(conf_matrix_test, annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Test Set')
plt.show()
# Retrieve the best hyperparameters
print("Best hyperparameters found by GridSearchCV:")
print(grid_search.best_params_)
Test Set - Classification Report:
precision recall f1-score support
0 0.81 1.00 0.89 50
1 0.00 0.00 0.00 4
2 0.00 0.00 0.00 4
3 0.00 0.00 0.00 3
4 0.00 0.00 0.00 1
accuracy 0.81 62
macro avg 0.16 0.20 0.18 62
weighted avg 0.65 0.81 0.72 62
Test Set - Confusion Matrix:
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result))
Best hyperparameters found by GridSearchCV:
{'C': 0.1, 'degree': 2, 'gamma': 'scale', 'kernel': 'linear'}
Training Set
# Evaluate the model on the training set
y_train_pred = best_model.predict(X_train)
print("Training Set - Classification Report:")
print(classification_report(y_train, y_train_pred))
print("\nTraining Set - Confusion Matrix:")
conf_matrix_train = confusion_matrix(y_train, y_train_pred)
sns.heatmap(conf_matrix_train, annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Training Set')
plt.show()
Training Set - Classification Report:
precision recall f1-score support
0 0.73 1.00 0.84 209
1 0.00 0.00 0.00 29
2 0.00 0.00 0.00 23
3 0.00 0.00 0.00 22
4 0.00 0.00 0.00 4
accuracy 0.73 287
macro avg 0.15 0.20 0.17 287
weighted avg 0.53 0.73 0.61 287
Training Set - Confusion Matrix:
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result))
Validation Set
# Evaluate the model on the validation set
y_val_pred = best_model.predict(X_val)
print("\nValidation Set - Classification Report:")
print(classification_report(y_val, y_val_pred))
print("\nValidation Set - Confusion Matrix:")
conf_matrix_val = confusion_matrix(y_val, y_val_pred)
sns.heatmap(conf_matrix_val, annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Validation Set')
plt.show()
Validation Set - Classification Report:
precision recall f1-score support
0 0.71 1.00 0.83 44
1 0.00 0.00 0.00 6
2 0.00 0.00 0.00 4
3 0.00 0.00 0.00 5
4 0.00 0.00 0.00 3
accuracy 0.71 62
macro avg 0.14 0.20 0.17 62
weighted avg 0.50 0.71 0.59 62
Validation Set - Confusion Matrix:
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result))
SMOTE ON RANDOM FOREST
# Initialize SMOTE with k_neighbors set to 1
smote = SMOTE(random_state=42, k_neighbors=2)
# Apply SMOTE to the training data
X_train_balanced, y_train_balanced = smote.fit_resample(X_train, y_train)
# Define Random Forest model with best hyperparameters and class weights
rf_clf = RandomForestClassifier(
max_depth=20,
max_features=0.5,
min_samples_leaf=2,
min_samples_split=2,
n_estimators=40,
class_weight='balanced', # Class weights set to 'balanced'
random_state=42
)
# Train the model on the SMOTE-balanced training data
rf_clf.fit(X_train_balanced, y_train_balanced)
# Make predictions on the validation data
y_pred = rf_clf.predict(X_val)
# Evaluate the model using classification report and confusion matrix
print("Validation Set - Classification Report:")
print(classification_report(y_val, y_pred))
# Plot confusion matrix
cm = confusion_matrix(y_val, y_pred)
sns.heatmap(cm, annot=True, fmt='d')
plt.title("Confusion Matrix")
plt.xlabel("Predicted")
plt.ylabel("True")
plt.show()
Validation Set - Classification Report:
precision recall f1-score support
0 0.68 0.86 0.76 44
1 0.00 0.00 0.00 6
2 0.00 0.00 0.00 4
3 0.00 0.00 0.00 5
4 0.00 0.00 0.00 3
accuracy 0.61 62
macro avg 0.14 0.17 0.15 62
weighted avg 0.48 0.61 0.54 62
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result))
Test Set
# Evaluate the model on the test set
y_test_pred = rf_clf.predict(X_test)
print("\nTest Set - Classification Report:")
print(classification_report(y_test, y_test_pred))
print("\nTest Set - Confusion Matrix:")
conf_matrix_test = confusion_matrix(y_test, y_test_pred)
sns.heatmap(conf_matrix_test, annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Test Set')
plt.show()
Test Set - Classification Report:
precision recall f1-score support
0 0.87 0.94 0.90 50
1 0.00 0.00 0.00 4
2 0.33 0.50 0.40 4
3 1.00 0.33 0.50 3
4 0.00 0.00 0.00 1
accuracy 0.81 62
macro avg 0.44 0.35 0.36 62
weighted avg 0.77 0.81 0.78 62
Test Set - Confusion Matrix:
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result))
Training Set
# Evaluate the model on the training set
y_train_pred = rf_clf.predict(X_train)
print("Training Set - Classification Report:")
print(classification_report(y_train, y_train_pred))
print("\nTraining Set - Confusion Matrix:")
conf_matrix_train = confusion_matrix(y_train, y_train_pred)
sns.heatmap(conf_matrix_train, annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Training Set')
plt.show()
Training Set - Classification Report:
precision recall f1-score support
0 0.98 1.00 0.99 209
1 1.00 1.00 1.00 29
2 0.95 0.91 0.93 23
3 1.00 0.86 0.93 22
4 1.00 1.00 1.00 4
accuracy 0.98 287
macro avg 0.99 0.95 0.97 287
weighted avg 0.98 0.98 0.98 287
Training Set - Confusion Matrix:
X_train, X_test, y_train, y_test = train_test_split(data['NewDescription'], data['Accident Level'].values, test_size=0.2, random_state=42)
print('Training utterances: {}'.format(X_train.shape[0]))
print('Validation utterances: {}'.format(X_test.shape[0]))
Training utterances: 328 Validation utterances: 83
Running models without SMOTE
# Defining a function which quickly test the fit of 6 different models on the dataset
def ml_models(X_train , y_train, X_test, y_test):
# creating a dictionary with different ML models
models = {
'LogReg': LogisticRegression(),
'Naive Bayes': GaussianNB(),
'KNN': KNeighborsClassifier(),
'SVM': SVC(),
'Decision Tree': DecisionTreeClassifier(criterion='entropy',max_depth=6,random_state=100,min_samples_leaf=5),
'RandomForest': RandomForestClassifier(n_estimators=100, max_depth=7),
'Bagging': BaggingClassifier(n_estimators=50, max_samples=.7),
'AdaBoost': AdaBoostClassifier(n_estimators= 50),
'Gradient Boost': GradientBoostingClassifier(n_estimators = 50, learning_rate = 0.05),
'XGBoost': XGBClassifier()
}
names = []
scores = []
precisions = []
f1_scores =[]
train_accuracies = []
test_accuracies = []
for name, model in models.items(): # Looping through each and every model
clf = model.fit(X_train, y_train) # Fit the models one by one
result = clf.score(X_test,y_test)
y_train_pred = clf.predict(X_train)
y_test_pred = clf.predict(X_test)
report = classification_report(y_train, y_train_pred)
precision = precision_score(y_train, y_train_pred, average='weighted')
f1 = f1_score(y_train, y_train_pred, average='weighted')
train_accuracy = accuracy_score(y_train, y_train_pred)
test_accuracy = accuracy_score(y_test, y_test_pred)
# print("name=",name, "result=", result, "precision=",precision)
names.append(name)
scores.append(result) # Appending the test scores to the list
precisions.append(precision)
f1_scores.append(f1)
test_accuracies.append(test_accuracy)
result_df = pd.DataFrame({'model': names, 'accuracy': scores, 'precision':precisions, 'f1-score': f1-scores, 'train_accuracies': train_accuracy, 'test_accuracies': test_accuracies }) # Creating the dataframe using the model scores
return result_df # Returns the dataframe
vectorizer = CountVectorizer(binary=True, ngram_range=(1, 2))
X_train_a = vectorizer.fit_transform(X_train)
X_test_a = vectorizer.transform(X_test)
ml_models(X_train_a.toarray(), y_train, X_test_a.toarray(), y_test)
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) /Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result))
| model | accuracy | precision | f1-score | train_accuracies | test_accuracies | |
|---|---|---|---|---|---|---|
| 0 | LogReg | 0.746988 | 1.000000 | 0.253012 | 1.0 | 0.746988 |
| 1 | Naive Bayes | 0.746988 | 1.000000 | 0.253012 | 1.0 | 0.746988 |
| 2 | KNN | 0.746988 | 0.539867 | 0.253012 | 1.0 | 0.746988 |
| 3 | SVM | 0.746988 | 0.877964 | 0.253012 | 1.0 | 0.746988 |
| 4 | Decision Tree | 0.698795 | 0.671789 | 0.301205 | 1.0 | 0.698795 |
| 5 | RandomForest | 0.746988 | 0.539867 | 0.253012 | 1.0 | 0.746988 |
| 6 | Bagging | 0.746988 | 0.946306 | 0.253012 | 1.0 | 0.746988 |
| 7 | AdaBoost | 0.734940 | 0.638341 | 0.265060 | 1.0 | 0.734940 |
| 8 | Gradient Boost | 0.722892 | 0.856098 | 0.277108 | 1.0 | 0.722892 |
| 9 | XGBoost | 0.722892 | 1.000000 | 0.277108 | 1.0 | 0.722892 |
Observations:
SMOTE
SMOTE (Synthetic Minority Over-sampling Technique) is a method used to tackle class imbalance in classification tasks.
It generates synthetic samples for the minority class by interpolating between existing instances, thus balancing the dataset. This technique enhances the performance of machine learning models by ensuring they learn from sufficient minority class examples.
Key parameter k_neighbours determines the number of nearest neighbors used in generating synthetic samples.
SMOTE is widely used to improve model accuracy and reliability in scenarios with imbalanced data distributions.
# Defining a function which quickly tests the fit of 6 different models on the dataset
def ml_models_with_SMOTE(X_train, y_train, X_test, y_test):
# creating a dictionary with different ML models
models = {
'LogReg': LogisticRegression(),
'Naive Bayes': GaussianNB(),
'KNN': KNeighborsClassifier(),
'SVM': SVC(),
'Decision Tree': DecisionTreeClassifier(criterion='entropy',max_depth=6,random_state=100,min_samples_leaf=5),
'RandomForest': RandomForestClassifier(n_estimators=100, max_depth=7),
'Bagging': BaggingClassifier(n_estimators=50, max_samples=.7),
'AdaBoost': AdaBoostClassifier(n_estimators= 50),
'Gradient Boost': GradientBoostingClassifier(n_estimators = 50, learning_rate = 0.05),
'XGBoost': XGBClassifier()
}
names = []
scores = []
precisions = []
f1_scores = []
train_accuracies = []
test_accuracies = []
for name, model in models.items(): # Looping through each model
# Create an SMOTE instance (adjust k_neighbors if needed)
smote = SMOTE(k_neighbors=2) # Number of neighbors to consider for synthetic sample generation
# Generate synthetic samples
X_train_resampled, y_train_resampled = smote.fit_resample(X_train.copy(), y_train.copy())
# Fit the model with the resampled data
clf = model.fit(X_train_resampled, y_train_resampled)
result = clf.score(X_test, y_test)
y_train_pred = clf.predict(X_train_resampled)
y_test_pred = clf.predict(X_test)
report = classification_report(y_train_resampled, y_train_pred)
precision = precision_score(y_train_resampled, y_train_pred, average='weighted')
f1 = f1_score(y_train_resampled, y_train_pred, average='weighted')
train_accuracy = accuracy_score(y_train_resampled, y_train_pred)
test_accuracy = accuracy_score(y_test, y_test_pred)
names.append(name)
scores.append(result)
precisions.append(precision)
f1_scores.append(f1)
train_accuracies.append(train_accuracy)
test_accuracies.append(test_accuracy)
result_df = pd.DataFrame({'model': names,
'accuracy': scores,
'precision': precisions,
'f1-score': f1_scores,
'train_accuracies': train_accuracies,
'test_accuracies': test_accuracies})
return result_df
Model Comparison with SMOTE
ml_models_with_SMOTE(X_train_a.toarray(), y_train, X_test_a.toarray(), y_test)
| model | accuracy | precision | f1-score | train_accuracies | test_accuracies | |
|---|---|---|---|---|---|---|
| 0 | LogReg | 0.493976 | 0.936695 | 0.930972 | 0.930290 | 0.493976 |
| 1 | Naive Bayes | 0.746988 | 0.782055 | 0.635737 | 0.666390 | 0.746988 |
| 2 | KNN | 0.084337 | 0.780129 | 0.640638 | 0.713693 | 0.084337 |
| 3 | SVM | 0.686747 | 0.892844 | 0.873756 | 0.874689 | 0.686747 |
| 4 | Decision Tree | 0.289157 | 0.719642 | 0.679951 | 0.683817 | 0.289157 |
| 5 | RandomForest | 0.638554 | 0.813552 | 0.788720 | 0.795851 | 0.638554 |
| 6 | Bagging | 0.445783 | 0.918818 | 0.903707 | 0.902905 | 0.445783 |
| 7 | AdaBoost | 0.228916 | 0.513684 | 0.391818 | 0.404149 | 0.228916 |
| 8 | Gradient Boost | 0.493976 | 0.847018 | 0.831649 | 0.829876 | 0.493976 |
| 9 | XGBoost | 0.590361 | 0.935757 | 0.928796 | 0.927801 | 0.590361 |
# def train_test_model(model, method, X_train, X_test, y_train, y_test, of_type, index, scale, report, save_model):
# if report == "yes":
# print(model)
# print("***************************************************************************")
# model.fit(X_train, y_train) # Fit the model on Training set
# if of_type == "coef":
# # Intercept and Coefficients
# print("The intercept for our model is", model.intercept_, "\n")
# for idx, col_name in enumerate(X_train.columns):
# print("The coefficient for {} is {}".format(col_name, model.coef_.ravel()[idx]))
# y_pred = model.predict(X_test) # Predict on Test set
# # Initialise mc_logloss
# mc_logloss = 1.00
# if method not in ['LogisticRegression', 'SVC'] and hasattr(model, 'predict_proba'):
# y_predictions = model.predict_proba(X_test)
# else:
# y_predictions = model.predict(X_test)
# train_accuracy_score = model.score(X_train, y_train)
# test_accuracy_score = model.score(X_test, y_test)
# precision_score_val = precision_score(y_test, y_pred, average='weighted')
# recall_score_val = recall_score(y_test, y_pred, average='weighted')
# f1_score_val = f1_score(y_test, y_pred, average='weighted')
# if method not in ['LogisticRegression', 'SVC']:
# mc_logloss = log_loss(y_test, y_predictions)
# if report == "yes":
# # Model - Confusion matrix
# model_cm = confusion_matrix(y_test, y_pred)
# sns.heatmap(model_cm, annot=True, fmt='.2f', xticklabels=["I", "II", "III", "IV", "V"], yticklabels=["I", "II", "III", "IV", "V"])
# plt.ylabel('Actual')
# plt.xlabel('Predicted')
# plt.show()
# # Model - Classification report
# model_cr = classification_report(y_test, y_pred)
# print(model_cr)
# # Store the accuracy results for each model in a dataframe for final comparison
# results_df = pd.DataFrame({'Method': method, 'Train Accuracy': train_accuracy_score, 'Test Accuracy': test_accuracy_score,
# 'Precision': precision_score_val, 'Recall': recall_score_val, 'F1-Score': f1_score_val,
# 'Multi-Class Logloss': mc_logloss}, index=[index])
# # Save the model
# if save_model == "yes":
# filename = 'finalised_model.sav'
# pickle.dump(model, open(filename, 'wb'))
# return results_df # return all the metrics along with predictions
# def gridsearch_allmodels(X_train_common, X_test_common, y_train, y_test, scale):
# # Define classification models with their respective parameter grids
# models = [
# ['LogisticRegression', LogisticRegression(solver='lbfgs', multi_class='multinomial', random_state=1),
# {'C': [0.001, 0.01, 0.1, 1, 10, 100]}],
# ['DecisionTreeClassifier', DecisionTreeClassifier(criterion='gini', random_state=1),
# {'max_depth': [3, 5, 10]}],
# ['RandomForestClassifier', RandomForestClassifier(n_estimators=10, n_jobs=-1, random_state=1, verbose=2),
# {'n_estimators': [10, 15, 20]}],
# ['SVC', SVC(kernel='rbf', probability=True),
# {'C': [0.1, 1, 10], 'gamma': [0.001, 0.01, 0.1]}],
# ['GaussianNB', GaussianNB(), {}], # No hyperparameters to tune for GaussianNB
# ['KNeighborsClassifier', KNeighborsClassifier(n_neighbors=5),
# {'n_neighbors': [2]}],
# ['AdaBoostClassifier', AdaBoostClassifier(n_estimators=100, learning_rate=0.25, random_state=1),
# {'n_estimators': [10, 15, 20], 'learning_rate': [0.01, 0.1, 0.5]}],
# ['GradientBoostingClassifier', GradientBoostingClassifier(loss='deviance', n_estimators=50, learning_rate=0.1, validation_fraction=0.2, random_state=1),
# {'n_estimators': [10, 15, 20], 'learning_rate': [0.01, 0.1, 0.5]}]
# ]
# all_gridResultsDf = pd.DataFrame()
# for name, classifier, param_grid in models:
# # Initialize GridSearchCV
# grid_search = GridSearchCV(estimator=classifier, param_grid=param_grid, scoring='accuracy', cv=5)
# # Train the model with hyperparameter tuning
# grid_search.fit(X_train_common, y_train)
# # Print the best parameters found by GridSearchCV
# print(f"Best parameters for {name}: {grid_search.best_params_}")
# # Train and test the model with the best parameters
# grid_results = train_test_model(grid_search.best_estimator_, name, X_train_common, X_test_common, y_train, y_test, 'none', 1, scale, 'no', 'no')
# # Store the accuracy results for each model in a dataframe for final comparison
# all_gridResultsDf = pd.concat([all_gridResultsDf, grid_results])
# return all_gridResultsDf
# # Initialize SMOTE
# sm = SMOTE(random_state=1, k_neighbors=2)
# # Perform SMOTE on the training data
# X_train_smote, y_train_smote = sm.fit_resample(X_train_a.toarray(), y_train)
# all_gridResultsDf = pd.DataFrame()
# gridsearch_allmodels(X_train_smote, X_test, y_train_smote, y_test, 'no')
Observations: